首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为python程序创建自定义GUI?

问如何为python程序创建自定义GUI?
EN

Stack Overflow用户
提问于 2013-07-25 22:04:41
回答 5查看 13.5K关注 0票数 8

我想创建一个自定义设计的python程序的图形用户界面,我在Photoshop中有一个模型,我正在寻找一个支持主题的库或任何其他库,可以做这项工作。

我的图形用户界面设计包含渐变、边框、边框半径和带有自定义最小化和关闭按钮的自定义标题栏,例如,可以查看Github client for Windows或任何Adobe软件安装程序。

我试过wxPython,我用style=wx.NO_BORDER去掉了标题栏和Windows添加的默认边框,但我觉得我没有使用正确的工具来完成这项工作,而且我在某处读到wxPython主要用于原生外观图形用户界面,而不是用于这种定制,所以我应该寻找其他的工具。

我在这里找到了一个答案,建议使用PyQT和QML在图形用户界面中进行高度定制,但编译后的文件非常大。

那么,我应该使用什么来创建自定义GUI呢?我正在寻找编译的程序,所以我需要做一个合理的文件大小。

EN

回答 5

Stack Overflow用户

发布于 2013-08-02 04:22:34

使用wxPython的初始方法很好,只需要为顶级wx.Frame再添加几个样式标志即可

代码语言:javascript
复制
wx.NO_BORDER ^ wx.SYSTEM_MENU ^ wx.MINIMIZE_BOX ^ wx.MAXIMIZE_BOX ^ wx.CLOSE_BOX

这不仅会删除边框,还会删除系统菜单和最小/最大/关闭框。

然后直接在顶部框架的工作区绘制gui背景。查看这个tutorial:注意wx.DeviceContext支持绘制位图和渐变填充。

现在制作您的自定义按钮,并让它们在单击时发布wx.CloseEvent、wx.IconizeEvent和wx.MaximizeEvent事件。使用绝对定位或Sizer将它们放置在您的自定义框架上。好了。

票数 4
EN

Stack Overflow用户

发布于 2013-07-31 13:04:21

使用wxPython/wxWidgets自定义GUI

您说得对,通常情况下,wxWidgets的目标是使用标准控件提供原生的外观和感觉,但也有不这样做的选择。在最近的版本中安装wxPython,然后安装相同版本的文档和演示包,然后运行演示并导航到Advanced Widgets选项卡,您将找到您在AUI中演示的所有功能。它确实提到了自定义关闭,最小化等,你唯一提到的东西没有在一个演示中是渐变按钮。你还可以找到渐变和水色按钮的演示,以及一个缩放条--类似于Mac但独立于平台。下面是AUI demo和demo包在缩放条上的截图:

wxPython AGW AUI屏幕截图:

​

​

缩放条上的演示:

​

​

有关文件大小的说明:

我已经使用wxPython几年了,我目前的主项目提供了15-20个可执行文件的大量功能,但是py2exe给了我一组压缩到35MB以下的可分发文件,包括文档和可再分发的库-我有一个非常有经验的人来找我和demand来了解我的可交付包的其余部分隐藏在哪里-是在线的,还是我以其他方式预安装的-他震惊地得知它是all在单个压缩文件中。

票数 2
EN

Stack Overflow用户

发布于 2013-07-31 21:27:50

Qt支持两种主要的自定义外观(和感觉)的方式:

  • Styles:For示例Oxygen或原生样式,如Windows样式或Mac样式。样式的开发相当复杂,因为它们需要直接与底层操作系统交互。你可能不想这样。另外,我不认为样式可以用Python编写,但我可能错了,here.
  • Stylesheets:这些是应用于图形用户界面的普通CSS样式表。它们非常灵活,可以在运行时更改,不需要任何其他代码,可以使用图像等资源,可以影响或更改大部分渲染。

例如,This stylesheet只是触及了可能的……的皮毛

请注意,许多用户发现自定义GUI样式具有破坏性和/或GUI,因为他们通常希望应用程序看起来像本机应用程序,即像所有其他应用程序一样。自定义GUI有很好的理由,例如,对于成像软件,为了不干扰查看/编辑的图像,人们通常需要对比度较低的GUI(如Adobe、Blender等)。

使用Qt或GTK+等广泛使用的工具包并自定义其外观的巨大优势是,可用性是最受欢迎的,而为游戏或类似工具开发的工具包通常暴露出较差的可用性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17860278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档