Python开发案例:设计启动工具箱,显示图形界面的方式

Python开发案例:设计启动工具箱,显示图形界面的方式

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以下文章来源于云+社区,作者 用户2870857

转载地址

https://blog.csdn.net/fei347795790?t=1

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"

同样,你可以创建快捷方式,并更改图标。

用 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, 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开发案例:设计启动工具箱,显示图形界面的方式相关教程

Python使用pyplot绘图时设置坐标标签以日期为例

Python使用pyplot绘图时设置坐标标签以日期为例 看官网文档的时候发现给的方法十分的复杂有点不甚理解,加上比较烦躁所以改换思路,最后发现可以这样添加日期作为坐标轴标签. 首先来看这个例子: import numpy as npimport pandas as pdimport matplotlib.pyplot

Python 垃圾回收机制与缓存机制--实现原理

Python 垃圾回收机制与缓存机制--实现原理 1.垃圾回收机制 一句话总结: 引用计数器为主、分代码回收和标记清除为辅 在Python的C源码中有一个名为refchain的 环状双向链表 ,Python程序中一旦创建对象都会把这个对象添加到refchain这个链表中。也就是说他保存

python argparse理解与实例

python argparse理解与实例 argparse包的一个作用是我们可以通过命令行来更改程序中的参数,就是说可以在不修改程序的情况下更改一些需要调整的参数。下面举一个例子。 实例 假设我们写了一个求圆柱体体积的程序: import math def cylinder_volume(redius, h

前端搜索功能

前端搜索功能 最近项目开发中,遇到了一个问题,前端做搜索,废话不多说,直接上图 相信很多时候在项目中做搜索的时候都是直接掉后台api,方便快速,自己工作量也比较少,但是一旦前端做搜索的时候不知道怎下手了,我先简单介绍一下我的结构目录 html结构 div

搭建前端开发环境

搭建前端开发环境 搭建前端开发环境 在谷歌浏览器官网下载电脑操作系统对应的版本,并安装。 在Node官网下载需要版本的安装包。 (一)安装步骤 一)安装包下载完成后,双击“node-v6.9.2-x64.msi”,开始安装。 点击【Next】 二)勾选复选框,点击【Next】

HBase快速入门系列 (九)| HBase 的实战案例(微博)

HBase快速入门系列 (九)| HBase 的实战案例(微博) 文章目录 HBase实战之谷粒微博 需求分析 表的分类 1.微博内容表 2.用户关系表 3.微博收件箱表 代码实现 1.代码设计总览: 2. 环境搭建 3.创建命名空间以及表名的定义 4.设置一个工具类,在工具类里面将命

python基础第十六课(函数)

python基础第十六课(函数) 函数 函数的创建和调用 函数的创建 函数的调用 函数调用的参数传递 函数调用的参数传递内存分析图 函数的返回值 函数的参数定义 个数可变的位置参数 个数可变的关键字参数 变量的作用域 函数的创建和调用 什么是函数 函数就是执行特

VS项目新建

VS项目新建 VS项目新建 开发工具与关键技术:VS、VS项目新建作者:黄桂康撰写时间:2019.02.23 本篇介绍的是如何在VS开发工具中新建项目,,,, 首先打开先前安装好的VS开发工具,VS打开的页面就是如下截图,它可以从1处新建项目,也可以直接从2处新建。 那

python网络安全工具箱界面,Python开发案例:设计启动工具箱,显示图形界面的方式...相关推荐

  1. python网络安全工具箱界面_Python开发案例:设计启动工具箱,显示图形界面的方式...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于云+社区,作者 用户2870857 转载地址 https://bl ...

  2. python设计图形界面执行exe程序_Python开发案例:设计启动工具箱,显示图形界面的方式...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于云+社区,作者 用户2870857 转载地址 https://bl ...

  3. python项目主界面_python项目案例

    #_*_ coding:utf-8 _*_ import re #导入正则表达式模块 import os #导入操作系统模块 filename= "students.txt" #定 ...

  4. python学生管理系统界面-Python实现GUI学生信息管理系统

    本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...

  5. python成绩管理系统界面-python实现简易版学生成绩管理系统

    300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下 使用链表来实现 class Node(object): def __init__(self, data, pointer ...

  6. python生成xml界面,Python如何用dom模块生成XML文

    Python如何用dom模块生成XML文件呢? 主要方法三点: 首先.生成XML节点(node) createElement("node_name") 然后.给节点添加属性值(At ...

  7. android 程序必须有界面,Android开发之开机启动没有界面的应用程序

    在Android系统中,有界面的app一定是有Activity的,没有界面的app,那就是一个Service了. Service如何启动呢?办法和Activity的启动一样,也是Intent对象.我讲 ...

  8. c语言 图形界面 入门,C语言是怎么实现图形界面的?

    GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...

  9. exe打包工具哪个最好_为你的 Python 程序写个启动工具箱

    到目前为止,公众号已经介绍了不少图形界面的软件,比如猜数游戏.PDF阅读器.贪吃蛇游戏.天气查询软件.PDF 阅读器等.为了方便他人使用,我们常把图形界面打包成 exe 文件.但是如果我们只是为了自己 ...

最新文章

  1. python需要的数学基础训练答案_新编基础训练数学答案
  2. apache强制https访问
  3. java基础学习整理(一)
  4. mysql数据库的触发器_Mysql数据库触发器
  5. 深度学习100例-卷积神经网络(CNN)实现mnist手写数字识别 | 第1天
  6. 时间戳类型的字符串 {Timestamp@15601} “2021-07-14 18:56:53.0“ 变成带T的Object类型 2021-07-14T10:56:53.000+0000 处理
  7. mysql dump gtid_mysqldump GTID搭建主从复制库
  8. Java 8 StampedLocks与ReadWriteLocks和同步
  9. java的编辑框丢失焦点_java – 捕获EditText丢失焦点
  10. winform button设计(一)
  11. vector用法 java_java.util.vector中的vector的详细用法
  12. html 静止横屏_移动端开发-禁止横屏
  13. 编译原理支配树部分名词介绍
  14. 检验图片有没有被 P 过
  15. css实现毛玻璃效果——backdrop-filter
  16. TCP 与 UDP 的异同
  17. graylog2 实践
  18. Algorithm:数学建模大赛(CUMCM/NPMCM)之NPMCM全国研究生数学建模竞赛(NPMCM)历年试题集合、试题库、学习网站推荐之详细攻略
  19. 随手记安全吗?随手科技获选深圳市南山区“绿色通道”企业
  20. js设置css色相旋转_色相旋转颜色方案是否保留了对色盲友好的能力?

热门文章

  1. 计算机学院元旦晚会对联,元旦对联集锦
  2. 最小公倍数,甲、乙、丙三人是朋友, 他们每隔不同天数到图书馆去一次。 甲3天去一次,乙4天去一次,丙5天去一次。有一天,他们三人恰好在图书馆相会,问至少再过多少天他们三人又在图书馆相会?
  3. 这个必用的开发框架,是多少程序员头秃的存在?
  4. 2020年最好用的6款内容收集整理利器,打造个人/团队知识库
  5. css怎样清除外边距,CSS 外边距
  6. Python 常用函数(自用)
  7. .NET版支付宝商户会员卡接入
  8. Spring 源码学习一: 使用Gradle 构建Spring 源码环境
  9. c语言试题打不开,下载的二级C语言题库打不开,错误如下:
  10. JAVA毕设项目实验室耗材管理系统(java+VUE+Mybatis+Maven+Mysql)