标签: wxpython

是否可以在 Python 中将 wx.Panel 定义为类?

我想定义几个插件。它们都继承自超类 Plugin。

每个插件都包含一个 wx.Panel,它有一个更具体的方法叫做“draw”。

如何将类定义为面板,然后在我的框架中调用该类?

我试过这样:

class Panel(wx.Panel):
    def __init__(self, parent):
        wx.Panel(self, parent)
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误:

in __init__
    _windows_.Panel_swiginit(self,_windows_.new_Panel(*args, **kwargs))
TypeError: in method 'new_Panel', expected argument 1 of type 'wxWindow *'
Run Code Online (Sandbox Code Playgroud)

提前致谢!

python wxpython class panel frame

1
推荐指数
1
解决办法
2410
查看次数

退出整个程序时python线程异常错误

嗨,大家好,

我正在使用 python 2.4.3 和 wxpython 开发 GUI。一切正常,除非我退出主程序(关闭 GUI 的主窗口)。奇怪的是,有时有这样的错误,有时根本没有错误。虽然我从 python 邮件列表中发现了相同的错误报告(链接是http://bugs.python.org/issue1722344,我不确定我的情况是否与这个相同)。我不知道它最终是如何解决的,我应该怎么做才能克服这个问题。

来自控制台的错误消息如下。

Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.4/threading.py", line 442, in __bootstrap
  File "/opt/company/workspace/username/application/src/mainwidget.py", line 1066, in run
  File "/usr/lib/python2.4/Queue.py", line 89, in put
  File "/usr/lib/python2.4/threading.py", line 237, in notify
exceptions.TypeError: exceptions must be classes, instances, or strings (deprecated), not NoneType
Unhandled exception in thread started by 
Error in sys.excepthook:

Original exception was:
Run Code Online (Sandbox Code Playgroud)

下面是我的部分代码(线程相关的代码已经完成,剩下的我提取主要操作)。当我使用 GUI 启动外部子进程时,同时创建了一个 …

python multithreading wxpython exception

1
推荐指数
1
解决办法
3690
查看次数

wxPython - 在面板上的 GridBagSizer 周围添加空间

我有一个 GridBagSizer (控件),它放置在面板(ctrlPanel)上并使用

controls.Fit(ctrlPanel)
ctrlPanel.SetSizer(controls)
Run Code Online (Sandbox Code Playgroud)

现在面板被放置在 BoxSizer 中

mainSizer = wx.BoxSizer(wx.VERTICAL)
mainSizer.Add(ctrlPanel, 0, wx.EXPAND|wx.ALL, 10)
Run Code Online (Sandbox Code Playgroud)

但是,在框中添加面板周围的空间(而不是面板上的网格)确实会导致面板周围出现“深灰色”边框。

在将 GridBagSizer 安装到面板之前,是否有一种“lege artis”方法可以在 GridBagSizer 周围添加空间?或者我是否需要破解已填充单元格周围的空单元格?

拾柴者说谢谢

wxpython space panel

1
推荐指数
1
解决办法
1510
查看次数

wxPython的MVC框架

我是一名电气工程师在python中有一个大型的正在进行的项目.这是我第一次编程GUI,我首先选择了wxPython并继续使用它,因为它很容易学习.我一直担心将我的数据与演示文稿分开我刚学会了MVC框架:)现在我想改变我的代码遵循MVC规则,但我找不到任何wxPython.有pyQt有这个,但我希望这是我的最后一个解决方案,因为我没有时间坐下来学习.

你碰巧知道要使用的wxPython MVC框架吗?

python model-view-controller wxpython

1
推荐指数
1
解决办法
2304
查看次数

如何在wxpython中添加指向菜单项的链接?

如何在wxpython中添加指向菜单项的链接?我想要的是当用户点击菜单项时它会进入我的网站.这甚至可能吗?

提前致谢!!哦,我是编程和python的新手,所以如果你可以愚蠢下来,这将是赞赏!谢谢

这是我的代码:

    import wx

class MainWindow(wx.Frame):

    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,'Python Test App',size=(600,400))
        panel=wx.Panel(self)
        wx.Frame.CenterOnScreen(self)
        self.SetBackgroundColour(wx.BLACK)

    ##MENU AND STATUS BAR
        status=self.CreateStatusBar()
        menubar=wx.MenuBar()
        file_menu=wx.Menu()
        help_menu=wx.Menu()

        ID_FILE_NEW = 1
        ID_FILE_EXIT = 2

        ID_HELP_ABOUT = 3
        ID_HELP_WEB = 4


        file_menu.Append(ID_FILE_NEW,"New Window","This will open a new window")
        file_menu.Append(ID_FILE_EXIT,"Exit","This will exit the program")

        help_menu.Append(ID_HELP_ABOUT,"About","This will tell you about %name%")
        help_menu.Append(ID_HELP_WEB,"Visit Website","This will take you to worm-media.host56.com")


        menubar.Append(file_menu,"File")
        menubar.Append(help_menu,"Help")
        self.SetMenuBar(menubar)

        self.Bind(wx.EVT_MENU, self.newWin, None, 1)
        self.Bind(wx.EVT_MENU, self.close, None, 2)
        self.Bind(wx.EVT_MENU, self.about, None, 3)
        ##self.Bind(wx.EVT_MENU, self.web, None, 4)

        heading …
Run Code Online (Sandbox Code Playgroud)

python wxpython

1
推荐指数
1
解决办法
814
查看次数

wxpython的wxEvent.Skip()解释道

我最近学习wxPython通过wxPython in Action,但我被困在第3章,特别是对的解释Figure 3.3Skip()钻石

Step 3 Locating the binder object,书中写道:

如果没有找到对象本身的绑定器,则处理在类层次结构中向上查找在对象的超类中定义的绑定 - (1)这与在容器层次结构中的向上走动不同下一步.

但在下一步中,Step 4 Determining whether to continue processing写道:

事件处理程序通过调用wx.Event方法Skip()来请求更多处理.如果调用Skip()方法,则继续处理,并且(2)在步骤中找到并执行在(3)超类中定义的任何处理程序.可以在处理程序中的任何位置调用Skip()方法.Skip()方法在事件实例中设置一个标志,wxPython在处理程序方法完成后进行检查.在清单3.3中,OnButtonClick()不调用Skip(),因此在这种情况下,事件处理在处理程序方法结束时完成.另外两个事件处理程序会调用Skip()(4),因此系统将继续搜索匹配的事件绑定,(5)最终调用鼠标进入和离开事件的默认功能,例如鼠标悬停事件.

我的问题与我在段落中标记的数字有关:

(1)在我的理解和其他一些googled材料中,传播是在容器层次结构中发生的事情,而不是类层次结构,这是正确的吗?

(2)说真的吗?任何处理程序都被执行?不是匹配实例和事件组合的那些?

(3)这里的超类是否正确?不应该是父窗户吗?

(4)我认为这一行与question2相矛盾,所以也许没有执行任何处理程序,只是匹配实例和事件组合的处理程序?

(5)什么是default functionality?它是如何被调用的?

如果有人有兴趣,list-3.3.py就在这里:

import wx


class MouseEventFrame(wx.Frame):

    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, 'Mouse Events',
                          size=(300, 200))
        self.panel = …
Run Code Online (Sandbox Code Playgroud)

python events wxwidgets wxpython

1
推荐指数
1
解决办法
3717
查看次数

在 wxpython 中设置背景图像

我在 wxpython 中有一些令人困惑的行为。我刚刚将最新版本 (3.0.0.0) 加载到带有 Python 2.6.6 的 RHEL 6.4 中。

大多数事情似乎都有效,但我之前运行带有背景图像的 gui 的代码失败了。所有按钮都可以工作,等等,但背景只是默认的灰色。

我尝试通过运行 Mike Driscoll 的 python 网站 ( http://www.blog.pythonlibrary.org/2010/03/18/wxpython-putting-a-background-image-on-a-panel /),并且遇到了同样的问题,除了默认的灰色背景之外没有其他背景显示(我之前在另一台机器上使用过他的示例,其中有旧版本的 wxpython [2.8.12.1] 没有问题):

import wx

########################################################################
class MainPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent=parent)
        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
        self.frame = parent

        sizer = wx.BoxSizer(wx.VERTICAL)
        hSizer = wx.BoxSizer(wx.HORIZONTAL)

        for num in range(4):
            label = "Button %s" % num 
            btn = wx.Button(self, label=label)
            sizer.Add(btn, 0, wx.ALL, 5)
        hSizer.Add((1,1), 1, wx.EXPAND)
        hSizer.Add(sizer, 0, wx.TOP, 100)
        hSizer.Add((1,1), 0, wx.ALL, 75) 
        self.SetSizer(hSizer) …
Run Code Online (Sandbox Code Playgroud)

python wxpython

1
推荐指数
1
解决办法
1715
查看次数

WxPython - 如何隐藏窗口上的 X 和展开按钮

我正在制作一个Python程序,在某些功能中它需要隐藏X和展开窗口按钮,我该怎么做?我使用 WxPython,我该如何将其放入?

python windows wxpython python-2.7

1
推荐指数
1
解决办法
4939
查看次数

wxpython 按钮背景颜色默认

我希望将 GUI 应用程序中按钮的背景颜色更改为默认值。在线搜索后,我看到了

button1.SetBackgroundColour(wx.NullColor) 似乎不起作用。我正在使用 python 2.7。

有没有其他方法可以将它设置为默认颜色而不使用系统颜色

wxpython colors button

1
推荐指数
1
解决办法
4644
查看次数

仪表进度条内的 wxpython 文本

我正在使用 WxPython 构建一个 GUI,并且想知道是否有办法将文本放入仪表进度条中。这是为了通过图像和文本向用户显示电池状态。

wxpython

1
推荐指数
1
解决办法
1043
查看次数