我试图创建一个 wx.KeyEvent 对象,我需要它来模拟 wx.TextCtrl 中的按键。我不想传播事件(如果可能的话),只需创建一个对象即可。有办法吗?
我查看了wxpython.org上的 wx.KeyEvent 页面,但是我没有找到任何有用的信息。我唯一的提示是,也许我可以创建一个 wx.Event 对象并为其提供所需的参数?
编辑:我尝试使用eventType=wx.EVT_KEY_DOWN
实例化一个Event对象,但是我得到一个例外,说明它不能被子类化/实例化。怪不得,因为我什至将参数传递给它。
答案 0 :(得分:0)
您可以使用wx.UIActionSimulator
https://wxpython.org/Phoenix/docs/html/wx.UIActionSimulator.html
即
keyinput = wx.UIActionSimulator()
keyinput.Char(ord("z"))
keyinput.Char(ord("\t"))
将模拟“ z”后跟制表符
可用的操作是:
> Char Press and release a key.
> KeyDown Press a key.
> KeyUp Release a key.
> MouseClick Click a mouse button.
> MouseDblClick Double-click a mouse button.
> MouseDown Press a mouse button.
> MouseDragDrop Perform a drag and drop operation.
> MouseMove Move the mouse to the specified coordinates.
> MouseUp Release a mouse button.
> Text Emulate typing in the keys representing the given string.