我正在使用wxPython开发一个Python应用程序并使用cxFreeze将其冻结.除了下面这一点之外,一切似乎都很顺利:
当我运行cxFreeze创建的可执行文件时,会弹出一个空白控制台窗口.我不想表现出来.有什么方法可以隐藏它吗?
它似乎没有在cxFreeze网站上记录,并且谷歌搜索没有与Py2Exe的一些类似的类型问题分开.
谢谢.
我没有在别处找到答案,而且似乎还没有在SO上提出这个问题.
在wxPython中创建事件绑定时,是否可以将其他参数传递给事件?例如,这是正常的方式:
b = wx.Button(self, 10, "Default Button", (20, 20))
self.Bind(wx.EVT_BUTTON, self.OnClick, b)
def OnClick(self, event):
self.log.write("Click! (%d)\n" % event.GetId())
Run Code Online (Sandbox Code Playgroud)
但是有可能将另一个参数传递给该方法吗?这样该方法可以判断多个小部件是否正在调用它但仍然返回相同的值?
它将大大减少复制和粘贴相同的代码,但具有不同的调用者.
是否有一个好的wxpython GUI构建器,不需要太多编码,就像MS visual studio中的表单构建器一样?
如何在WxPython面板中嵌入matplotlib图形对象?
我google了一下,看到了涉及交互式图形和其他额外内容的复杂示例.任何人都能帮助一个最小的例子吗?
我正在使用wxPython为应用程序制作一个小的GUI前端.
我wx.StaticText()用来创建一个地方来保存一些文本,代码如下:
content = wx.StaticText(panel, -1, "Text Here", style=wx.ALIGN_CENTRE)
Run Code Online (Sandbox Code Playgroud)
点击时我有一个按钮从MySQL检索数据,我想改变StaticText()MySQL数据的值或者我还能用什么来保存数据.
我尝试过使用以下方法:
contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE | wx.HSCROLL)
content.SetValue("New Text")
Run Code Online (Sandbox Code Playgroud)
这显示数据正常,但加载数据后,您可以编辑数据,我不希望这样.
希望你们明白我想做什么,我是Python新手:)
干杯
我想在我的Mac OS 10.7(Lion)计算机上使用wxPython.(我是Tkinter难民.)我从Python 2.7.1升级,然后下载并安装了wxPython2.8-osx-unicode-2.8.12.1-universal-py2.7.dmg.这是我得到的:
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> import wx
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import wx
File "/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/__init__.py", line 45, in <module>
from wx._core import *
File "/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 4, in <module>
import _core_
ImportError: dlopen(/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so, 2): no suitable image found. Did find:
/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so: no matching architecture in universal wrapper
Run Code Online (Sandbox Code Playgroud)
这告诉我什么,我该怎么办呢?
如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32或wxPython?
基本上,如果当前操作系统是Vista,我需要一个被调用的函数返回True:
>>> isWindowsVista()
True
Run Code Online (Sandbox Code Playgroud) 我有一个依赖于lxml的wxpython应用程序,并且在通过python解释器运行时效果很好.但是,当使用py2exe创建一个exe时,我收到了这个错误
ImportError: No module named _elementpath
Run Code Online (Sandbox Code Playgroud)
我然后使用了python setup.py py2exe -p lxml ,我没有得到上述错误,但另一个说
ImportError: No module named gzip
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道问题是什么以及如何解决它.我还应该在我的dist文件夹中放置libxml2,libxslt等任何dll文件吗?我搜索了计算机并没有找到这些文件,所以也许他们不需要?
谢谢.
编辑:我刚试过,python setup.py py2exe -p -i gzip并创建了exe.但是生成的exe不会运行.我双击它,它什么也没做.
这是我正在使用的setup.py脚本
from py2exe.build_exe import py2exe
from distutils.core import setup
setup( windows=[{"script": "gui.py"}] )
Run Code Online (Sandbox Code Playgroud)
Edit2:我尝试使用cx_freeze作为替代方案,但得到了相同的结果
ImportError: No module named _elementpath
Run Code Online (Sandbox Code Playgroud)
错误.之后不知道该怎么办.
我是wxWidgets的重度用户,部分原因是由于许可原因.
我正在使用mutagen将ID3标签数据从CP-1251/CP-1252转换为UTF-8.在Linux中没有问题.但在Windows上,调用SetValue()wx.TextCtrl会产生错误:
UnicodeDecodeError:'ascii'编解码器无法解码位置0中的字节0xc3:序数不在范围内(128)
我从mutagen中提取的原始字符串(假设为CP-1251编码)是:
u'\xc1\xe5\xeb\xe0\xff \xff\xe1\xeb\xfb\xed\xff \xe3\xf0\xee\xec\xf3'
Run Code Online (Sandbox Code Playgroud)
我尝试将其转换为UTF-8:
dd = d.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
...甚至将默认编码从ASCII更改为UTF-8:
sys.setdefaultencoding('utf-8')
Run Code Online (Sandbox Code Playgroud)
......但是我得到了同样的错误.