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

标签 python user-interface wxpython pyqt

我想为具有自定义设计的 python 程序创建一个 GUI,我在 Photoshop 中有一个模型,我正在寻找一个支持主题的库或任何其他可以完成这项工作的库。

我的 GUI 设计包含渐变、边框、边框半径和带有自定义最小化和关闭按钮的自定义标题栏,例如查看 Github client for Windows ,或任何 Adob​​e 软件安装程序。

我尝试了 wxPython,我使用 style=wx.NO_BORDER 删除了 Windows 添加的标题栏和默认边框,但我觉得我没有为这项工作使用正确的工具,并且我在某处读到 wxPython 主要用于原生外观 GUI,而不是用于这种定制,所以我应该寻找其他东西。

我在这里找到了一个答案,推荐使用 PyQT 和 QML 在 GUI 中进行高度定制,但是编译后的文件非常大。

那么我应该使用什么来创建自定义 GUI 呢?我也想编译该程序,因此我需要以合理的文件大小进行编译。

最佳答案

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

wx.NO_BORDER ^ wx.SYSTEM_MENU ^ wx.MINIMIZE_BOX ^ wx.MAXIMIZE_BOX ^ wx.CLOSE_BOX

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

然后直接在顶部框架的客户区绘制您的图形用户界面背景。 看这个tutorial : 并注意 wx.DeviceContext 支持绘制位图和渐变填充。

现在制作您的自定义按钮并让它们在单击时发送 wx.CloseEventwx.IconizeEventwx.MaximizeEvent 事件。使用绝对定位或 Sizer 将它们放置在您的自定义框架上。完成。

关于python - 如何为 python 程序创建自定义 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860278/

相关文章:

python - Django 教程 - 编写你的第一个 Django 应用程序,第 2 部分,我正在尝试迁移,但它显示 "No migrations to apply."

Java swing——Jpanel 不重新渲染/重绘自身

python - 无法在python中导入模块

python - 以python中的值为中心的对数间隔范围?

python - 如何在 Python Web 应用程序中为状态更改通知生成服务器发送的事件?

delphi - 自定义数字键盘并将特定数字发送到事件文本框

c# - 在 C# 2.0 中创建向导的最佳方法是什么?

linux - Linux下virtualenv安装wxPython

python - wx grid SetCellBackGroundColor() 未按预期工作

python - 在wxpython的面板中嵌入网格