5
私はPythonとWXを使い慣れています。私はコンボボックスでユーザにプロンプトを出す簡単なテストダイアログを作成しました。私は私のメインプログラムでコンボックスから価値を得たいと思っています。メインプログラムからどのように呼び出すのですか?Python WX - wxからユーザ入力を返すダイアログ
これは私がダイアログを表示しますが、現在はコンボボックスから値をキャプチャしていないこと、それを呼び出すためにpurposingた方法です。
import highlight
highlight.create(self).Show(True)
a = highlight.OnComboBox1Combobox(self)
print a
ダイアログファイルの名前は、「ハイライト」です。以下はコードです
#Boa:Dialog:Dialog2
import wx
def create(parent):
return Dialog2(parent)
[wxID_DIALOG2, wxID_DIALOG2COMBOBOX1, wxID_DIALOG2STATICTEXT1,
] = [wx.NewId() for _init_ctrls in range(3)]
class Dialog2(wx.Dialog):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Dialog.__init__(self, id=wxID_DIALOG2, name='', parent=prnt,
pos=wx.Point(264, 140), size=wx.Size(400, 485),
style=wx.DEFAULT_DIALOG_STYLE, title='Dialog2')
self.SetClientSize(wx.Size(384, 447))
self.comboBox1 = wx.ComboBox(choices=['test1', 'test2'],
id=wxID_DIALOG2COMBOBOX1, name='comboBox1', parent=self,
pos=wx.Point(120, 16), size=wx.Size(130, 21), style=0,
value=u'wining\n')
self.comboBox1.SetToolTipString(u'comboBox1')
self.comboBox1.SetLabel(u'wining\n')
self.comboBox1.Bind(wx.EVT_COMBOBOX, self.OnComboBox1Combobox,
id=wxID_DIALOG2COMBOBOX1)
self.staticText1 = wx.StaticText(id=wxID_DIALOG2STATICTEXT1,
label=u'test', name='staticText1', parent=self, pos=wx.Point(88,
16), size=wx.Size(19, 13), style=0)
def __init__(self, parent):
self._init_ctrls(parent)
##print get_selection
##print get_selection1
def OnComboBox1Combobox(self, event):
get_selection = self.comboBox1.GetValue()
return get_selection
マイク、返信いただきありがとうございます。 res = myDlg.ShowModal()を使用すると動作しませんが、res <> myDlg.ShowModal()に変更すると動作します。なぜなのかご存知ですか?ありがとう。 – user1314011
それは動作するはずです。何が起こっているのか知るために、実行可能な例とトレースバックが必要です。 –
メインアプリケーションと同様に、カスタムダイアログに必要なコードを追加するとよいでしょう。 OPの質問はzetcodeのカスタムダイアログボックスの例ではカバーされていません – Anake