本篇内容介绍了“Python怎么实现启动工具箱显示图形界面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
第一种方式就是直接改 py 文件后缀为 pyw,这样系统就会自动调用 pythonw.exe 来执行你的程序。这样你就不必忍受黑乎乎的 cmd 窗口,也不会因为关闭了 cmd 窗口连带着关闭了程序。
然后我们可以在桌面新建一个快捷方式,右键在属性里更改图标,这样我们就创建了一个图形界面的快捷启动方式。
第二种方式与第一种类似,也是通过 pythonw.exe 执行 pyw 文件,不过换成了 bat 批处理文件的形式,换汤不换药。
我们新建一个 txt 文件,在其中输入这样两行代码,并将其保存为 .bat 文件。start 后面的第一个字符串表示你的pythonw.exe 文件所在位置,一般在你的 Python 安装目录下面,和 python.exe 在同一目录。第二个字符表示你的 pyw 程序的地址,最好使用绝对地址。
@echo off start "D:\python372\pythonw.exe" "D:\\QQPCMgr\Desktop\Pytho高效编程\start.pyw"
同样,你可以创建快捷方式,并更改图标。
下面,我将演示如何使用 PyQt5 实现一个启动工具箱。
主要实现了以下功能:
通过工具栏可以直接执行 python 程序
九宫格右键保存或者删除快速启动链接
九宫格左键点击显示图形界面
为了方便使用,我们可以把这个软件打包成 exe 文件,或者重命名为 pyw 后缀,并创建快捷方式便于使用。
关键点一:
这个程序的核心思想就是再开一个进程来执行 py 文件,但是此时程序的路径为启动管理器的路径。所以说,如果你要打开的程序,比方说“PDF阅读器”,涉及到了文件路径,一定要使用绝对路径。如果使用了相对路径,必须在你的“PDF阅读器”源代码关于路径的地方加上下面这行代码。下面这行代码把当前路径更改为你的“PDF阅读器”所在目录。
os.chdir(os.path.dirname(os.path.realpath(__file__)))
关键点二:
我们使用 QProcess 来管理进程。首先创建一个 QProcess 对象,调用 startDetched 方法。startDetched 方法可以在主进程之外新开一个进程。也就是说,如果我们打开或者关闭 “PDF阅读器” ,并不影响启动管理器的运行。
from PyQt5.QtCore import QProcess def open(self): fname = self.get_file() if fname: process = QProcess() process.startDetached('python', [fname])
关键点三:
重写 Button 按键类以支持右键菜单及一系列操作。
其中 parent 为按钮依附的主程序。
class MyButton(QPushButton): def __init__(self, parent=None): super(MyButton, self).__init__(parent)
重写以下功能:
字体大小及样式
支持右键菜单(添加、删除功能)
重写左键点击事件
要保存的按钮信息包括:按钮名称(你设置的应用名称)、按钮对应地址、按钮状态(用于判断按钮有没有绑定地址,如果有的话,不支持修改覆盖名称操作)。
def initUi(self): # 右键菜单工具栏 addAction = QAction('添加', self) addAction.triggered.connect(self.add) delAction = QAction('删除', self) delAction.triggered.connect(self.delete) self.addAction(addAction) self.addAction(delAction) self.clicked.connect(self.run)
关键点四:
与数据库交互,与上次 500 行代码实现 PDF 阅读器的思想基本相同,增加了上下文管理器,提高代码可读性。
数据库保存的信息,就是关键点三中提到的 button 的属性。
def save2db(start): with DBManger(starter) as conn: conn.execute("INSERT INTO starter Values (?,?,?)", (start.fname, start.name, start.state)) conn.commit()
“Python怎么实现启动工具箱显示图形界面”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。