wxpython 框架空闲一段时间后关闭

时间:2021-01-26 02:42:17

标签: python user-interface wxpython

我有一个 wxpython GUI 框架,它在空闲 30 秒后消失。 但是python程序仍然在没有框架窗口的情况下运行。 我将打印语句插入到我的每个事件处理程序中。 但是终端中没有显示任何消息。 我还在 GUI 模块中注释了所有框架 Destroy 和 Close 语句。

这个程序的 wx.App 早在这个 GUI 框架之前就被实例化了。 任何人都可以提供一些线索来提供帮助吗? 我在 Win10 上使用 python 3.7 运行程序。我的 wxpython 是 4.1.1。 此外,GUI 框架和程序在同一线程中运行。在这个实现中,GUI 框架不是主程序的子线程。

GUI 的框架类大致如下,去掉了很多细节。在以下两种情况下执行所有代码时会出现问题。 1.编译成PYC文件并从终端执行。 (我的队友说在这种情况下它总是关闭。) 2. 在 vscode 中作为 py 脚本执行。 (我注意到它有时会关闭。)但是关闭发生在主循环退出并再次进入之后。

class TaaDGUI(wx.Frame):
    def __init__(self):
        global baseFrame 
        global basePanel 

        if sys.version_info[0] < 3: 
            TaaDGUI.__init__(self, None, title="v2 GUI")
        else: 
            super( TaaDGUI, self ).__init__(None, title="v3 GUI") 
        self.SetBackgroundColour( wx.Colour( 255, 255, 200 ) )

        self.SetSize((800,600))
        self.SetIcon(myICO)

        self.menubar = myTaaDMenubar(self)
        self.SetMenuBar(self.menubar)
        self.framePanel = wx.Panel(self)
        self.frameSizer = wx.BoxSizer(wx.VERTICAL)
    
        self.headMessage = wx.StaticText(self.framePanel, size=(800,16), 
            label = "Please take your actions!", 
            style = wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL)
    
        self.frameSizer.Add(self.headMessage) 
        self.testLogScrolledPanel = self.guiScrolledPanel(self.framePanel, 
400, 300)

        self.mainScreenAndLogSizer = wx.BoxSizer(wx.HORIZONTAL) 
        self.mainScreenAndLogSizer.Add(self.mainScreenAndStatusSizer)
        self.mainScreenAndLogSizer.Add(self.testLogScrolledPanel)
        self.frameSizer.Add(self.mainScreenAndLogSizer)

        self.statusCtrl = wx.StaticText(self.framePanel, size=(400,50))
        self.textInputCtrl = wx.TextCtrl(self.framePanel, 
            style=wx.TE_PROCESS_ENTER, size=(360,50))

        self.buttonTextInput = textInputButton(self.__TaaD, self.framePanel)
        self.statusSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.statusSizer.Add(self.statusCtrl)

        self.statusSizer.Add(baseFrame.textInputCtrl)
        self.statusSizer.Add(self.buttonTextInput)
        self.frameSizer.Add(self.statusSizer)

        # .... some code deleted

The following is the GUI that I created with some secret deleted according to my boss.

谢谢

农场

0 个答案:

没有答案
相关问题