Articles of WXpython

在Linux下的virtualenv中安装wxPython

我正在尝试在virtualenv中设置一个wxpython。 正如许多地方所详述的,easy_install / pip安装dosent的工作方式是setup.py不存在。 我详细介绍了如何在Mac上进行设置,但没有发现Linux的这种方法。 这怎么能在Linux上完成? 我的实际使用案例是一个小实验。 我试图得到一个django项目调用一个wxpython应用程序。 这在virtualenv之外工作,但是导入失败,因为wx未安装在virtualenv中。 我在这里先向您的帮助表示感谢。

如何检查操作系统是否是Python的Vista?

如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32或wxPython ? 本质上,我需要一个函数,如果当前操作系统是Vista,将返回True: >>> isWindowsVista() True

在Windows XP上安装wxPython之后,“导入wx”失败

我下载并安装了这个版本的wxPython ,用于我的Python 2.6安装: http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.9.1-py26.exe 当我运行Python并尝试导入wx时,出现以下错误: C:\Program Files\Console2>python Python 2.6 (r26:66721, Oct 2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import wx Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\__init__.py", line 45, in <module> from wx._core import * File […]

如何正确安装wxPython?

所以我在四处寻找不同的东西来处理Python,比如闪存文本或计时器的代码,但是当我把它们复制到我的窗口时,出现了不断的语法错误。 现在,也许你不打算直接复制它们,但是我得到的一个错误是'没有名为wx的模块'。 我知道我可以通过安装wxPython来获取该模块。 问题是,我已经尝试了所有4个选项,没有一个为我工作。 我下载哪一个,如何使用Windows进行设置? 谢谢

在Mac OS X,Windows上获取Python对话框?

我将如何去得到一个特权提升对话框popup我的Python应用程序? 我需要Windows上的UAC对话框和Mac上的密码authentication对话框。 基本上,我需要部分应用程序的root权限,我需要通过GUI获得这些权限。 我正在使用wxPython。 有任何想法吗?

wxPython不会closures与父窗口句柄的框架

我有一个Python程序,从另一个程序通过COM获取窗口句柄(把Python程序看作是一个插件)我把这个窗口设置为主Python框架的父窗口,所以如果另一个程序最小化,python框架也会。 问题是,当我退出,并尝试closures或销毁主框架,frame.close永远不会完成它的执行(虽然它消失),另一个程序拒绝closures,除非杀死与TaskManager。 这里大概是我们采取的步骤: if we are started directly, launch other program if not, we are called from the other program, do nothing enter main function: create new wx.App set other program as frame parent: Get handle via COM create a parent using wx.Window_FromHWND create new frame with handle as parent show frame enter main loop […]

wxPython:使框架成为一切

我希望我的框架始终处于顶端,但是我希望它能够处于顶峰。 我不想要其他窗口来隐藏它,即使它们也是“永远在上面”。 我正在使用wx.STAY_ON_TOP和wx.FRAME_FLOAT_ON_PARENT ,但仍然有窗口出现在我的顶部。 此外,任务栏出现在我的框架上,而我希望它在我的框架后面。 我已经尝试了很多不起作用的东西,在这里详细介绍。 任何想法如何使我的框架真正的顶部?

matplotlib和wxpython的透明度问题

我正在开发基于matplotlib和Windows的wxpython的GUI。 当使用“Windows XP”主题(绿色“开始”button,蓝色任务栏)时,我遇到了一个可见的问题。 我很确定,同样的问题也会出现在Vista上。 我知道一个不完善的解决方法,但我无法正确解决此问题。 我的matplotlib图embedded到wxPanel中,embedded到wxNotebook(如果您愿意,可以使用制表符)。 对于一些主题,选项卡的背景颜色实际上是一个渐变,并且wx会尝试将其与接近它的颜色相匹配。 这是不完美的解决方法:颜色匹配在窗口的顶部,但不在底部。 这就是为什么我想实际使用具有透明背景的matplotlib图。 当我将graphics的facecolor设置为透明的时候,它实际上会把桌面或者任何窗口的“颜色”放在后面,而不是wxPanel / wxNotebook。 如果我调整窗口大小,透明部分会累积绘制的数据。 这最后一个问题不再是主题,我也在“Windows Classic”上观察它。 在下面的示例代码中,我宁愿期望图的透明部分显示在embedded图的面板上设置的蓝色。 import wx import matplotlib matplotlib.use('WXAgg') from matplotlib.figure import Figure from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg import wxversion import sys class MyFrame ( wx.Frame ): def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = […]

在wxPython中拖放的OLE方式

我有在MS Windows上运行的wxPython应用程序,我希望它支持在其实例之间拖放(所以用户打开我的应用程序3次,并将数据从一个实例拖到另一个实例)。 wxPython中的简单拖放工作方式如下: 用户启动拖动 :源窗口在wx.DataObject()中打包必要的数据,创build新的wx.DropSource,设置其数据并调用dropSource.DoDragDrop() 用户将数据拖放到目标窗口上 :拖放目标调用库函数GetData(),它将实际数据传输到其wx.DataObject实例,最后 – dataObject.GetData()将实际数据解包。 我想有一些更复杂的拖放,这将允许用户select什么数据被拖动后,他下降。 我的梦想情景: 用户启动拖动 :只有一些指向源窗口的指针被打包(某些函数或对象)。 用户将数据拖放到目标窗口上 :显示尼斯对话框,询问用户select了哪种拖放模式(如拖动歌曲名称,歌曲名称和拖动的艺术家的艺术家名称或整个专辑)。 用户select拖放模式 :拖放目标在被拖动的数据对象上调用一些函数,然后从拖动源中检索数据并将其传送到放置目标。 我梦想中的情景在MS Windows中似乎是可行的,但是wxWidgets和wxPython的文档是相当复杂和令人怀疑的。 并不是所有的wx.DataObject类都在wxPython中可用(只有wx.PySimpleDataObject),所以我希望有人分享他的经验。 这样的行为可以在wxPython中实现,而不必直接在winAPI中编写它? 编辑:ToniRuža给出了一个工作拖放示例的答案,但这不完全是我的梦想的场景。 他的代码在数据丢失时处理数据( HandleDrop()显示popup式菜单),但在启动拖动时(在On_ElementDrag() )中准备数据。 在我的应用程序中,应该有三种不同的拖放模式,其中一些需要耗时的数据准备。 这就是为什么我想推迟数据检索到用户丢弃数据和select(潜在成本高昂)D&D模式的时刻。 而对于内存保护问题 – 我想使用OLE机制进行进程间通信,就像MS Office一样。 您可以复制Excel图表并将其粘贴到MS-Word,其行为就像一个图像(好,有点)。 因为它的工作原理,我相信它可以在winAPI中完成。 我只是不知道我是否可以在wxPython中编写它。

wxPython在Windows和Ubuntu上给出了不同的结果

我已经开发了一个小的wxPython程序,它在Windows和Ubuntu中给出了完全不同的输出(我很高兴被告知我已经错误地编程了,所以我会认为这是一个结果 – 只要我们能够使它工作) 该程序右侧显示四个形状。 双击右侧的图像将它们移动到左侧,反之亦然。 Windows上的问题(请参阅在Windows和Ubuntu中执行相同操作之后拍摄的屏幕截图):button无法正确呈现; 当我点击十字,圆柱或正方形时,它们正确地移动到屏幕的左侧,但三angular形的多个图像仍然保留; 一个图像出现在左上angular 这些问题都没有出现在Ubuntu中 import wx class ImageSizer(wx.Frame): def __init__(self, parent, title): super(ImageSizer, self).__init__(parent, title=title, size=(250, 200)) self.ShapeTypes=['available','selected'] self.MainSizer=wx.GridBagSizer() self.SetSizer(self.MainSizer) cmdNew=wx.Button(self, label='New') cmdNew.Bind(wx.EVT_BUTTON, self.onNewClick) cmdCancel=wx.Button(self, label='Cancel') cmdCancel.Bind(wx.EVT_BUTTON, self.CancelClick) self.MainSizer.Add((500,0), pos=(0,0), span=(1,2)) #dummy to position Available self.MainSizer.Add((0,200), pos=(1,0), span=(1,1)) #dummy to position Buttons self.MainSizer.Add(cmdNew, pos=(2,2), flag=wx.LEFT|wx.TOP, border=10) self.MainSizer.Add(cmdCancel, pos=(2,3), flag=wx.RIGHT|wx.BOTTOM|wx.TOP|wx.ALIGN_RIGHT, border=10) […]