我有一个TextCtrl在我的wxPython程序中,我想将其宽度设置为正好3个字符.但是,手动设置其大小的唯一方法是仅接受像素数.有没有办法指定字符而不是像素?
当我关闭auinotebook中的标签时会使用什么事件?我用EVT_AUINOTEBOOK_PAGE_CLOSE(D)进行了测试.它没用.
我还要右键单击选项卡本身事件.
我在哪里可以找到可以与aui manager/notebook一起使用的所有事件?可能只是我糟糕的搜索技能,但我找不到存在的不同事件的任何列表,也不能找到鼠标/窗口事件.拥有一份完整的清单真的很方便.
#!/usr/bin/python
#12_aui_notebook1.py
import wx
import wx.lib.inspection
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
wx.Frame.__init__(self, *args, **kwds)
self.nb = wx.aui.AuiNotebook(self)
self.new_panel('Page 1')
self.new_panel('Page 2')
self.new_panel('Page 3')
self.nb.Bind(wx.EVT_AUINOTEBOOK_PAGE_CLOSED, self.close)
def new_panel(self, nm):
pnl = wx.Panel(self)
pnl.identifierTag = nm
self.nb.AddPage(pnl, nm)
self.sizer = wx.BoxSizer()
self.sizer.Add(self.nb, 1, wx.EXPAND)
self.SetSizer(self.sizer)
def close(self, event):
print 'closed'
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, '12_aui_notebook1.py')
frame.Show()
self.SetTopWindow(frame)
return 1
if __name__ == "__main__":
app = MyApp(0)
# wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)
Oerjan Pettersen
我想要一个只接受数字的文本控件.(只需45或366之类的整数值)
做这个的最好方式是什么?
我有一条多线
wx.TextCtrl()
Run Code Online (Sandbox Code Playgroud)
我设置它的forground和用于写字符串的背景颜色的对象.我需要用不同的颜色写出不同的线条,
wx.TextCtrl.setForgroundcolor()
Run Code Online (Sandbox Code Playgroud)
改变所有以前的线条颜色.这有什么方法吗?
我在我的Mac上安装了Python 2.7作为Framework构建.我已经安装并确认wxPython适用于这个Python构建.但是当我使用virtualenv创建虚拟环境时,生成的Python可执行文件不是框架构建,或者至少不是根据wxPython:
This program needs access to the screen. Please run with a Framework build of python, and only when you are logged in on the main display of your Mac.
有任何想法吗?
我正在编写一个wxPython应用程序,当我尝试更改StaticText对象中的文本时,我设置的对齐就消失了.它从中心开始,但在文本更改后,对齐将返回默认的左对齐.这是我的相关代码:
#initializing
self.panel = wx.Panel(self)
self.st_RouteInfo = wx.StaticText(self.panel, label=self.route_start, style=wx.ALIGN_CENTRE)
#changing StaticText
self.st_RouteInfo.SetLabel("Put text here")
self.Update()
Run Code Online (Sandbox Code Playgroud)
我猜我忘记了一些基本的东西,因为我是wxPython和wxWidgets的新手.谢谢!
我有一个关于运行GUI的问题.我很遗憾地运行Chrome操作系统,这意味着我无法使用和运行在线IDE中的代码.我想知道是否可以从在线IDE运行诸如Tkinter或wxWidgets之类的GUI包?有什么办法吗?我经常使用的主要IDE是Cloud 9.
我使用wxPython制作了简单的代码编辑器.文件大小(python文件)是1.3 KB.但是当我使用PyInstaller创建可执行文件时,我得到30 MB的文件!有没有办法减少文件大小?顺便说一句,我不是导入整个wx库,只导入我需要的组件(ex from wx import Frame).
使用Linux,Fedora 18 64bit.
我正在使用PyInstaller将我的wxpython(3.0.2.0)应用程序转换为二进制文件.在Ubuntu 12.04上构建和执行时,二进制文件工作正常.但是,如果我在Ubuntu 14.04上构建,我会收到以下错误.(当我直接启动python脚本即使在Ubuntu 14.04中的python my_application.py时,应用程序也能正常工作).知道在使用PyInstaller打包应用程序时可能会遗漏什么?
$ ./my_application
Traceback (most recent call last):
File "<string>", line 22, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
exec(bytecode, module.__dict__)
File "/local/workspace/my_application/out00-PYZ.pyz/wx", line 45, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
exec(bytecode, module.__dict__)
File "/local/workspace/my_application/out00-PYZ.pyz/wx._core", line 4, in <module>
**ImportError: No module named _core_**
Run Code Online (Sandbox Code Playgroud)
我的PyInstaller规范文件如下所示:
...
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='my_application',
debug=False,
onefile = True,
strip=None,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='my_application')
Run Code Online (Sandbox Code Playgroud) 我正在尝试让 wxPython 在pyenv基于virtualenv和virtualenvwrapper插件的基于虚拟环境中工作在MacOS 上。我已经阅读了几个关于如何完成这项工作的问题,但大多数答案似乎都假设我使用的是系统 python 版本,和/或只解决了一个损坏设置的一个方面。我还没有看到任何解释 wxPython 在启动时检查什么的内容。
我有 pyenv 编译的 python 3.7 与--enable-framework.
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.4
Run Code Online (Sandbox Code Playgroud)
pyenv 它本身是从 git 中最近(在过去几周内)拉取的,安装在我的 homedir 中。
需要明确的是,我的 Python 工具链中的任何工具或库都不是 Homebrew 安装的。
我的 virtualenv 可以通过--system-site-packages. 据推测,访问框架和显示是 wxPython 工作所需的全部内容,但在任何测试应用程序启动时,我仍然遇到相同的错误:
该程序需要访问屏幕。请使用 Python 的框架版本运行,并且仅当您在 Mac 的主显示屏上登录时才运行。
在我看来,我应该需要的一切都可用。
% pyenv which python3.7
/Users/matt/.pyenv/versions/3.7.4/bin/python3.7
% mkvirtualenv --system-site-packages --python python3.7 wxtest
Running virtualenv with interpreter /Users/matt/.pyenv/shims/python3.7
Already using interpreter /Users/matt/.pyenv/versions/3.7.4/Python.framework/Versions/3.7/bin/python3.7
Using base prefix '/Users/matt/.pyenv/versions/3.7.4/Python.framework/Versions/3.7'
New python executable in …Run Code Online (Sandbox Code Playgroud) wxpython ×10
python ×7
wxwidgets ×3
macos ×2
pyinstaller ×2
file ×1
pyenv ×1
python-3.x ×1
size ×1
textctrl ×1
tkinter ×1
ubuntu ×1
ubuntu-14.04 ×1
virtualenv ×1