标签: wxpython

在长时间运行的任务中保持GUI响应

在应用程序执行一些CPU繁重处理时保持GUI响应是有效GUI编程的挑战之一.

这里有一个很好的讨论如何在wxPython中执行此操作.总而言之,有3种方式:

  1. 使用线程
  2. 使用wxYield
  3. 将工作分块并在IDLE事件处理程序中执行

发现哪种方法最有效?其他框架(如Qt,GTK或Windows API)的技术也很受欢迎.

python user-interface wxpython

11
推荐指数
2
解决办法
3934
查看次数

Python GUI应用程序重新分发

我需要开发一个中小型桌面GUI应用程序,由于时间限制,最好使用Python作为首选语言.

我有哪些GUI库选项允许我独立地重新分发我的应用程序,假设用户没有可用的Python安装,显然没有我正在使用的GUI库?

另外,我如何为每个目标操作系统打包大小合理的二进制文件?(我的主要目标是Windows和Mac OS X)

另外: 我一直在关注WxPython,但是我发现了大量的恐怖故事,用cx_freeze包装它并获得30mb +二进制文件,并且没有关于如何实际进行包装以及如何信任它的真实建议.

python user-interface wxpython distribution freeze

11
推荐指数
2
解决办法
5173
查看次数

我在哪里可以找到py2exe的好教程?

有人能指点我一个py2exe 的教程吗?我已经阅读了官方教程,但与使用python脚本构建可执行文件时可以使用的所有选项相比,它更加清晰.为了记录,我的python脚本使用Python 2.5.2,wxPython/wxWidgets 2.8和MySQLdb 1.2.2; 所以,如果你有py2exe的具体技巧,那些包将非常感激(是的,我见过Py2EXE和wxPython页面).

python wxpython py2exe

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

如何在其他平台上完成系统托盘应用程序?

Windows有"系统托盘",可存放时钟和运行良好的服务,如MSN,Steam等.

我想开发一个wxPython托盘应用程序,但我想知道它将如何移植到其他平台.每个平台上的托盘等价物是多少,以及支持Windows,OSX和Linux需要多少手动工作(特别是哪些shell最友好).

python operating-system wxpython cross-platform system-tray

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

Easy_install的wxpython有"安装脚本"错误

我安装了python 2.5,fink放在/ sw/bin /中.我使用easy install命令

sudo /sw/bin/easy_install wxPython
Run Code Online (Sandbox Code Playgroud)

尝试安装wxpython并在尝试处理wxPython-src-2.8.9.1.tab.bz2时出现错误,表示没有安装脚本.Easy-install已经适用于其他几个安装,直到这个.现在为什么要破坏它的任何帮助?

编辑:在转储回shell提示符之前发生错误.

阅读http://wxPython.org/download.php
最佳匹配:wxPython src-2.8.9.1正在
下载http://downloads.sourceforge.net/wxpython/wxPython-src-2.8.9.1.tar.bz2
处理wxPython- src- 2.8.9.1.tar.bz2
错误:在/tmp/easy_install-tNg6FG/wxPython-src-2.8.9.1.tar.bz2中找不到设置脚本

python wxpython easy-install

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

如何使用自定义日志记录处理程序将记录器重定向到wxPython textCtrl?

我在我的python应用程序中使用了一个模块,该模块使用日志记录模块编写了大量消息.最初我在控制台应用程序中使用它,并且很容易使用控制台处理程序将日志记录输出显示在控制台上.现在我使用wxPython开发了我的应用程序的GUI版本,我想将所有日志输出显示到自定义控件 - 多行textCtrl.有没有办法我可以创建一个自定义日志记录处理程序,以便我可以重定向所有日志记录输出并显示日志消息,无论我想要什么/在这种情况下,wxPython应用程序.

python logging wxpython

11
推荐指数
2
解决办法
9483
查看次数

用于在Python中编程GUI的WYSIWYG工具?

我希望找到类似于Borland Delphi或VisualBasic for Python的工具.基本上,我希望能够轻松编写Windows应用程序,而无需对每个小部件进行编码.这样的软件存在吗?谢谢!

python user-interface qt wxpython pyqt4

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

在Mac OS Mavericks上安装wxPython

我在Macbook Air上运行小牛队.今天我通过他们的网站下载了wxPython,但是当我点击安装包时,我得到了:

wxPython3.0-osx-cocoa-py2.7.pkg” is damaged and can’t be opened. You should eject the disk image.
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法来解决这个问题,谢谢.

python macos wxpython osx-mavericks

11
推荐指数
2
解决办法
9817
查看次数

如何在Python 3中使用wxPython?

我安装了wxPython 3.0.1.1,但我无法import wx使用Python 3.4.1.我收到以下错误:

Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'wx'
Run Code Online (Sandbox Code Playgroud)

不过,我可以import wx使用Python 2.7(我的默认安装OS X 10.9):

Python 2.7.5 (default, Mar  9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] …
Run Code Online (Sandbox Code Playgroud)

python macos wxpython python-3.x

11
推荐指数
2
解决办法
2万
查看次数

wxPython线程阻塞

这是在wxPython的Phoenix分支中.

为了不阻止GUI,我试图运行一些线程.

我的两个线程工作正常,但另一个线程似乎永远不会达到其绑定结果函数.我可以告诉它正在运行,它似乎没有正确发布事件.

这是主计算线程的结果函数:

def on_status_result(self, event):
    if not self.panel.progress_bar.GetRange():
        self.panel.progress_bar.SetRange(event.data.parcel_count)
    self.panel.progress_bar.SetValue(event.data.current_parcel)
    self.panel.status_label.SetLabel(event.data.message)
Run Code Online (Sandbox Code Playgroud)

这是我绑定他们的方式:

from wx.lib.pubsub.core import Publisher
PUB = Publisher()
Run Code Online (Sandbox Code Playgroud)

这是我绑定方法的方式:

def post_event(message, data):
    wx.CallAfter(lambda *a: Publisher().sendMessage(message, data=data))
Run Code Online (Sandbox Code Playgroud)

这是线程.第一个不起作用,但后两个做:

class PrepareThread(threading.Thread):
    def __init__(self, notify_window):
        threading.Thread.__init__(self)
        self._notify_window = notify_window
        self._want_abort = False

    def run(self):
        while not self._want_abort:
            for status in prepare_collection(DATABASE, self._previous_id, self._current_id, self._year, self._col_type,
                                             self._lock):
                post_event('prepare.running', status)
        post_event('prepare.complete', None)
        return None

    def abort(self):
        self._want_abort = True


class SetupThread(threading.Thread):
    def __init__(self, notify_window):
        threading.Thread.__init__(self)
        self._notify_window = notify_window
        self._want_abort = False

    def …
Run Code Online (Sandbox Code Playgroud)

python multithreading wxpython

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