杭州网站建设市场,wp-config.php wordpress,建设网站多长时间,百度小程序异常怎么办到目前为止#xff0c;公众号已经介绍了不少图形界面的软件#xff0c;比如猜数游戏、PDF阅读器、贪吃蛇游戏、天气查询软件、PDF 阅读器等。为了方便他人使用#xff0c;我们常把图形界面打包成 exe 文件。但是如果我们只是为了自己使用方便的话#xff0c;我们有必要把程…到目前为止公众号已经介绍了不少图形界面的软件比如猜数游戏、PDF阅读器、贪吃蛇游戏、天气查询软件、PDF 阅读器等。为了方便他人使用我们常把图形界面打包成 exe 文件。但是如果我们只是为了自己使用方便的话我们有必要把程序打包成几十乃至上百兆的 exe 文件吗没有必要。我们只要能够快速启动图形界面就可以了。下面我将介绍几种不需要打开 cmd 窗口就可以显示图形界面的方式。Python 自带的方式第一种方式就是直接改 py 文件后缀为 pyw这样系统就会自动调用 pythonw.exe 来执行你的程序。这样你就不必忍受黑乎乎的 cmd 窗口也不会因为关闭了 cmd 窗口连带着关闭了程序。然后我们可以在桌面新建一个快捷方式右键在属性里更改图标这样我们就创建了一个图形界面的快捷启动方式。批处理文件第二种方式与第一种类似也是通过 pythonw.exe 执行 pyw 文件不过换成了 bat 批处理文件的形式换汤不换药。我们新建一个 txt 文件在其中输入这样两行代码并将其保存为 .bat 文件。start 后面的第一个字符串表示你的pythonw.exe 文件所在位置一般在你的 Python 安装目录下面和 python.exe 在同一目录。第二个字符表示你的 pyw 程序的地址最好使用绝对地址。echo off
start D:python372pythonw.exe D:QQPCMgrDesktopPytho高效编程start.pyw同样你可以创建快捷方式并更改图标。用 Python 实现启动工具箱下面我将演示如何使用 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, parentNone):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高效编程后台回复2019412 来获取源代码。