2

私のアプリケーションwx.SearchCtrlでは、検索ボタンとキャンセル ボタンが含まれている、おそらく で提供されているような検索ボックスが必要です。また、検索結果を参照できるように、ユーザーがいつUpまたはを押したかを知りたいです。Downデモを作成すると、wx.TextCtrlこのようにイベントをバインドできます

self.textbox = wx.TextCtrl(self)
self.textbox.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown, self.textbox)

しかし、に変更textboxするとすぐにwx.SearchCtrl、イベントをキャッチできなくなります。バインディングを動作させることはできますか、それともバインディングのように見えるようwx.SearchCtrlに実装する必要がありますか?textbox

それが問題なら、私は Ubuntu (Gnome) で開発していて、アプリケーションは Linux と Windows の両方でうまく動作するはずです。

4

2 に答える 2

1

回避策は EVT_KEY_UP を使用しているようです。

self.textbox.Bind(wx.EVT_KEY_UP, self.OnKeyUp, self.textbox)

ただし、この方法では、キーの押下を繰り返すことはできません (イベントを発生させるには、キーを離す必要があります)。私はまだより良い方法を探しています。

于 2010-11-13T17:01:48.887 に答える
0

Use a different event, as per the docs.

self.textbox = wx.SearchCtrl(self, style=wx.TE_PROCESS_ENTER)
self.Bind(wx.EVT_TEXT, self.OnKeyDown, self.textbox)
于 2010-11-11T16:40:27.353 に答える