1

MS Word 風のコンボ ボックスをアプリケーションに追加して、ユーザーがフォント サイズを変更できるようにしています。セットアップコードは次のとおりです。

sizeBox = gtk.combo_box_new_text()
for size in xrange(MIN_FONT_SIZE, MAX_FONT_SIZE+1):
    sizeBox.append_text(str(size))

def UpdateFontSize(c, box):
    newSize = box.get_active_text()
    if newSize:
        self.textViewer.SetFontSize(int(newSize))

print sizeBox.get_active_text()
sizeBox.connect("changed", UpdateFontSize, sizeBox)

プログラムを実行し、コンボ ボックスで選択したエントリを変更しようとすると、次のようになります。

None
OutNav.py:876: GtkWarning: gtk_combo_box_get_active_text: assertion `GTK_IS_COMBO_BOX (combo_box)' failed
   newSize = box.get_active_text()

そのため、get_active_text は外側のスコープで正常に動作しますが、ComboBox をコールバックへの引数として指定すると、突然動作が停止します。ここで何が起こっているのか誰か教えてもらえますか? (どうやら gtk.combo_box_new_text は非推奨であるため、ComboBoxText を使用したかったのですが、何らかの理由で PyGTK 2.24 のディストリビューションには含まれていません)

4

0 に答える 0