【问题标题】:wxPython - problems with messagedialogwxPython - 消息对话框的问题
【发布时间】:2014-04-19 20:38:17
【问题描述】:

我是新手,正在努力学习 wxpython。我从 youtube 上的视频教程中获得了此代码。它应该显示一个带有“确定”按钮的对话框。它可以在视频中的演示中使用,但是当我这样做时对话框并没有出现。 我添加了打印语句来调试代码。该程序似乎正在执行所有步骤,但对话框没有出现。

我还在终端控制台中收到此消息:Python[3700:d07] Can't open input server /Library/InputManagers/Inquisitor

提前致谢,

代码如下:

import wx

class bucky(wx.Frame):

    def __init__(self, parent, id):
        print 'initialising frame'
        wx.Frame.__init__(self,parent, id, 'frame aka window', size=(300,200))
        panel = wx.Panel(self)


        print 'about to create box'

        box = wx.MessageDialog(None,'go on', 'title', wx.OK)
        answer=box.ShowModal()
        box.Destroy()


if __name__=='__main__':
    print 'program begins'
    app=wx.App()
    print 'app created'
    frame = bucky(parent=None, id=-1)
    print 'frame instantiated'
    frame.Show()
    app.MainLoop()

【问题讨论】:

  • 你是如何执行你的代码的?请提供有关您使用的 wxPython 版本和操作系统的详细信息。
  • 嗨,我在 OSX Mavericks,Python 2.7.6,wxPython 版本 3.0.0.0 可可经典。我正在通过终端执行我的代码。 (顺便说一句,if name 部分的缩进在网站上看起来很乱,但在我的代码中很好。

标签: python wxpython


【解决方案1】:

同样的问题,仍然无法弄清楚为什么对话框在启动时会被取消,但我们可以启动它两次来解决这个问题。

    box = wx.MessageDialog(None,'go on', 'title', wx.OK)
    box.ShowModal()
    box.ShowModal()
    box.Destroy()

【讨论】:

    【解决方案2】:

    试试这个代码。它在带有 wxPython v3.0 的 Windows 8 上运行良好

    import wx
    
    class bucky(wx.Frame):
        def __init__(self, parent, id):
            print 'initialising frame'
            wx.Frame.__init__(self,parent, id, 'frame aka window', size=(300,200))
            panel = wx.Panel(self)
            print 'about to create box'
            box = wx.MessageDialog(None,'go on', 'title', wx.OK)
            box.ShowModal()
            box.Destroy()
    
    if __name__=='__main__': 
        print 'program begins' 
        app=wx.App() 
        print 'app created' 
        frame = bucky(parent=None, id=-1) 
        print 'frame instantiated' 
        frame.Show()
        app.MainLoop()
    

    【讨论】:

    • 我没有看到代码有任何问题。不幸的是,我不是 Mac 用户。所以我无法在 Mac 上进行测试。也许这是特定于操作系统的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多