0

我有一个简单的 wxPython 应用程序。它基本上有一个图像和一个文本输入字段 (a wx.TextCtrl)。

我希望能够在窗口打开后立即开始输入文本。现在,我必须先单击文本控件,然后才能开始输入文本。

这是一个演示该问题的最小应用程序:

import wx

class MyFrame(wx.Frame):
    """ We simply derive a new class of Frame. """
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(200, 100))

        mainSizer = wx.BoxSizer(wx.VERTICAL)

        self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
        mainSizer.Add(self.control, 1, wx.EXPAND)

        self.SetSizer(mainSizer)
        self.Show(True)

app = wx.App(False)
frame = MyFrame(None, 'Small editor')
app.MainLoop()

我已经四处wx.SetInsertionPoint寻找,但这似乎没有任何效果。

4

1 回答 1

0

啊,笨蛋。我不得不进一步查看继承链。

您可以简单地调用SetFocus()控件(在本例中为self.control.SetFocus())。

SetFocus()是 wxWindow 的成员函数。我只是在查看 wxTextCtrl 的文档。


当然,直到我问了这个问题,我才想到要查找继承链。

我把它留在这里,因为这是一个很难用谷歌搜索的问题。希望这会对其他人有所帮助。

于 2013-05-13T04:50:01.993 回答