用于各种GUI用法的包装器模块

GUISpices的Python项目详细描述


黄鼠狼桂香料

这是您真正需要的唯一一个GUI模块。。。在

特点

  • PyInstaller生成的帮助函数
  • 带自定义子菜单的托盘图标
  • Windows消息
  • Qt Creator窗口
  • Windows资源管理器扩展
  • 无边界可拖动窗口
  • 轻松定制CSS样式

PyInstaller的助手函数

这些助手函数为构建应用程序提供了极好的支持 使用PyInstaller,修复了一些通常在运行时出现的主要问题。 我强烈建议您使用 具有这些功能的PyInstaller。这将节省很多调试时间。在

一个文件生成(-F选项)

如果您使用-F选项构建一个.exe,整个应用程序将被捆绑到一个 包含所有资源文件的可执行文件。这些都是在执行时拆包的。 但在哪里呢?使用此函数可以在您计划的任何时候引用资源文件 使用-w选项。在

fromGUISpices.Utilityimportresource_path# opening a "text.txt" in the same directoryf=open(resource_path("text.txt"),"r")print(f.read())f.close()

确保在生成时通过--add-data <src;dst>附加资源文件 运行PyInstaller时!在这种情况下:pyinstaller -F --add-data "text.txt;text.txt" main.py

窗口构建(-w选项)

如果使用-w选项构建.exe,则应用程序将在没有终端的情况下执行 窗户。我们通常只想在GUI应用程序中使用它。但是,如果你的应用程序 需要获取终端命令的输出,您的应用程序将打开 终端或因被禁止而卡住。此功能将 执行终端命令并以字符串形式返回输出(基于subprocess.Popen)。在

^{pr2}$

代码示例

托盘图标

此示例在右下角的托盘中创建一个经典图标。在

fromPySide2.QtWidgetsimportQApplication,QMenufromGUISpicesimportTrayIconimportsys# create main application (if not present)app=QApplication([])app.setQuitOnLastWindowClosed(False)# configure basic tray actionstray=TrayIcon(app,"examples/icon.png","Test Program",click_action=lambda:print("Clicked"))tray.add_menu_feature("Change Icon",lambda:tray.set_icon("examples/icon2.png"))tray.add_menu_feature("Show a message from tray",lambda:tray.show_tray_message("Hello","Hello my friend"))tray.add_separator()tray.add_menu_feature("Exit",app.exit)# Include a custom sub-menumenu_=QMenu(title="Sub Menu")menu_.addAction("Egg sit (sub-action)",lambda:sys.exit(0))tray.add_menu(menu_)sys.exit(app.exec_())

Windows消息

这将显示一个托盘图标并创建一个带有自定义图标和操作的windows托盘邮件。在

fromPySide2.QtWidgetsimportQApplication,QMenufromGUISpicesimportTrayIconimportsys# create main application (if not present)app=QApplication([])app.setQuitOnLastWindowClosed(False)# configure basic traytray=TrayIcon(app,"examples/icon.png","Test Program")# Show messagetray.show_tray_message("Title","This is the message body",icon="examples/icon.png",on_click=lambda:print("Message clicked"))sys.exit(app.exec_())

Qt窗口

整个模块允许您使用 Qt Designer,一个功能强大且易于使用的环境 拖放GUI构建。这将创建一个可以直接加载的.ui文件 创建完全兼容的所需窗口。在

fromPySide2.QtWidgetsimportQApplicationfromGUISpicesimportUIWindowimportsysapp=QApplication()main_form=UIWindow('examples/wizard.ui',"examples/icon.png")main_form.window.show()sys.exit(app.exec_())

Windows资源管理器扩展

这将在“资源管理器”上下文菜单中创建一个新条目。 所以右键单击任何文件夹或用户的桌面 也将显示您的自定义操作。此示例创建 一个自定义操作“Run CMD”,打开一个终端。在

fromGUISpicesimportExplorerContextManagerExplorerContextManager.register_entry("Run CMD","C:\\Windows\\System32\\cmd.exe","C:\\Windows\\System32\\cmd.exe")

无边界可拖动窗口

这将在“资源管理器”上下文菜单中创建一个新条目。 所以右键单击任何文件夹或用户的桌面 也将显示您的自定义操作。此示例创建 一个自定义操作“Run CMD”,打开一个终端。在

fromPySide2.QtWidgetsimportQApplicationfromPySide2.QtCoreimportQtimportsysfromGUISpicesimportUIWindow,DragBarapp=QApplication()main_form=UIWindow('examples/wizard.ui',"examples/icon.png")# This line makes your window borderlessmain_form.window.setWindowFlags(Qt.FramelessWindowHint)# This adds a special Class to it, making it movable (via drag)DragBar(main_form.window)main_form.window.show()sys.exit(app.exec_())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java@AfterEach注释在Spring测试中被忽略   散列如何使用bouncy castle在Java中创建SHA512摘要字符串?   java无法使用Okhttp获取响应cookie   100个数的java阶乘   多线程如何在Java中实现对象计数器   java我的精灵不显示背景   java如何在com上应用PanelSlideListener。索特里。滑动面板。SlidengUpPanelLayout SlideUp库   java如何在JDBC中使用WHERE EXISTS函数   java Swing:标签前景中的白色被绘制为黑色   获取java的时间戳。util。另一个java的日期对象为(10/7/14)。util。日期对象(2014年10月7日星期二11:21:00)   java如何在Spring/OpenJPA 1中重新创建用于更新行锁定的选择   java在保存另一个maven项目中的类时,有没有办法让eclipse识别对该类的更改?   java如何解决Spring中的Servlet上下文错误?   java在mongodb中删除记录   显示的java片段与当前片段重叠,而不是替换它