没有条目的 GTK3 组合框移动到有条目的 GTK3 组合框之后。为什么?
GTK3 combobox without entry moving to after GTK3 combobox with entry. Why?
所以,我一直在开发这个工作应用程序,它基本上允许用户 select 他们的部门、大楼和楼层。这将显示 selected 位置的平面图,他们可以在该平面图上 select 不同的打印机。它还会显示另一个组合框,他们可以在其中按名称 select 打印机。我按照我希望它们显示的顺序创建了组合框:部门、建筑物、楼层、打印机。他们不会那样显示。这就是它们的显示方式:ComboBox Order。我猜这是因为 Floor 组合框是一个 Gtk.ComboBoxText 对象,而不是像其他组合框那样只是 Gtk.ComboBox。有没有办法解决或解决这个问题?
# Department Combo
self.department_combo = Gtk.ComboBox.new_with_model_and_entry(self.logic.get_department_store())
self.department_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.department_combo, False, False, 0)
self.department_combo.show()
# Building Combo
self.building_combo = Gtk.ComboBox.new_with_entry()
self.building_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.building_combo, False, False, 0)
self.building_combo.hide()
# Floor Combo
self.floor_combo = Gtk.ComboBoxText()
self.floor_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.floor_combo, False, False, 0)
self.floor_combo.hide()
# Printer Combo
self.printer_combo = Gtk.ComboBox.new_with_entry()
self.printer_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.printer_combo, True, True, 0)
self.printer_combo.hide()
假设 self.combo_rowbox
是 Gtk.Box
我建议将用于 self.printer_combo
的 pack_start
更改为 pack_end
。这意味着小部件被添加到 Box
的右侧而不是左侧。
或者,您也可以尝试使用 Gtk.Grid
作为 ComboBox
的容器,它不太灵活,但有助于获得更可预测的结果。
所以,我一直在开发这个工作应用程序,它基本上允许用户 select 他们的部门、大楼和楼层。这将显示 selected 位置的平面图,他们可以在该平面图上 select 不同的打印机。它还会显示另一个组合框,他们可以在其中按名称 select 打印机。我按照我希望它们显示的顺序创建了组合框:部门、建筑物、楼层、打印机。他们不会那样显示。这就是它们的显示方式:ComboBox Order。我猜这是因为 Floor 组合框是一个 Gtk.ComboBoxText 对象,而不是像其他组合框那样只是 Gtk.ComboBox。有没有办法解决或解决这个问题?
# Department Combo
self.department_combo = Gtk.ComboBox.new_with_model_and_entry(self.logic.get_department_store())
self.department_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.department_combo, False, False, 0)
self.department_combo.show()
# Building Combo
self.building_combo = Gtk.ComboBox.new_with_entry()
self.building_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.building_combo, False, False, 0)
self.building_combo.hide()
# Floor Combo
self.floor_combo = Gtk.ComboBoxText()
self.floor_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.floor_combo, False, False, 0)
self.floor_combo.hide()
# Printer Combo
self.printer_combo = Gtk.ComboBox.new_with_entry()
self.printer_combo.set_entry_text_column(0)
self.combo_rowbox.pack_start(self.printer_combo, True, True, 0)
self.printer_combo.hide()
假设 self.combo_rowbox
是 Gtk.Box
我建议将用于 self.printer_combo
的 pack_start
更改为 pack_end
。这意味着小部件被添加到 Box
的右侧而不是左侧。
或者,您也可以尝试使用 Gtk.Grid
作为 ComboBox
的容器,它不太灵活,但有助于获得更可预测的结果。