2016-05-13 8 views
1

私は仕事用のこのアプリケーションを開発しています。これは基本的にユーザーが部門、建物、階を選択できるようにしています。これにより、選択された場所のフロアプランが表示され、フロアプラン上の異なるプリンタを選択することができます。また、別のコンボボックスが表示され、プリンタ名を選択することができます。私はコンボボックスをどのように表示するかを、Department、Building、Floor、Printerの順に作成しました。彼らはそのように表示されません。これは代わりに表示方法です:ComboBox Order。これは、FloorコンボボックスがGtk.ComboBoxの代わりにGtk.ComboBoxTextオブジェクトであるためです。これを修正したり回避したりする方法はありますか? self.combo_rowboxを想定しGTK3コンボボックスのエントリがなく、GTK3コンボボックスの後ろに移動します。どうして?

# 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() 

答えて

1

は私がpack_endself.printer_comboに使用pack_startを変更することをお勧めGtk.Boxです。つまり、ウィジェットは左側の代わりにBoxの右側に追加されます。

また、Gtk.Gridをコンテナとして使用すると、ComboBoxの柔軟性は低下しますが、より予測可能な結果が得られます。

+1

ありがとうございました!私はなぜpack_endの使用について考えなかったのかわかりません...私はちょうどpack_startの使用に慣れてきたと思います。再度、感謝します。 – TheEggSample

+0

これは良い答えですが、なぜ「ボックス」がこれを行うのか分かりませんが、それは望ましくない予期しない動作のようです。彼らはあなたがそれらを梱包する順序で梱包する必要があります。 – oldtechaa

+0

それは本当に奇妙な動作です、私はそれを再現しようとしましたが、それは動作しませんでした。 OPが元のコードからコピー貼り付けを行ってスニペットを作成し、誤って修正した可能性があります。 (最初は私が隠して見せなければならないかもしれないと思ったが、これはそうではない) – B8vrede

関連する問題