Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxPython-messagedialog存在问题_Python_Wxpython - Fatal编程技术网

wxPython-messagedialog存在问题

wxPython-messagedialog存在问题,python,wxpython,Python,Wxpython,我是个新手,正在努力学习wxpython。我从youtube上的视频教程中得到了这段代码。它应该显示一个带有“ok”按钮的对话框。它在视频中的演示中起作用,但当我这样做时,对话框就不会出现。 我添加了print语句来调试代码。程序似乎正在执行所有步骤,但对话框没有出现 我在终端控制台中也收到了这样一条消息:Python[3700:d07]无法打开输入服务器/库/输入管理器/查询器 提前感谢, 代码如下: import wx class bucky(wx.Frame): def __i

我是个新手,正在努力学习wxpython。我从youtube上的视频教程中得到了这段代码。它应该显示一个带有“ok”按钮的对话框。它在视频中的演示中起作用,但当我这样做时,对话框就不会出现。 我添加了print语句来调试代码。程序似乎正在执行所有步骤,但对话框没有出现

我在终端控制台中也收到了这样一条消息:Python[3700:d07]无法打开输入服务器/库/输入管理器/查询器

提前感谢,

代码如下:

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()

试试这个代码。它在Windows8和WxPythonV3.0上运行良好

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()

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

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

您是如何执行代码的?请提供有关您使用的wxPython版本和操作系统的详细信息。您好,我是OSX Mavericks、Python 2.7.6、wxPython 3.0.0.0 cocoa classic。我正在通过终端执行代码。(顺便说一句,if name部分的缩进在网站上看起来很混乱,但在我的代码中没有问题。我看不出代码有任何问题。不幸的是,我不是Mac用户。因此我无法在Mac上测试。也许这是操作系统特有的问题。