python写前端图形界面_Python图形界面开发
用python来开发图形界面,确实不是很方便,没有c#,Java,甚至VB来得容易。几个控件拖拽,然后响应事件。
用python写脚本,或者web service来处理一般工作,绰绰有余。
但有的时候,脱离开发环境,脱离服务器,还是GUI程序更单纯。
Python支持多种图形界面的第三方库,包括:
Tk,wxWidgets,Qt,GTK等等。
Tk(Tkinter)是Python自带的库,使用Tkinter,无需安装任何包,就可以直接使用。
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。
一般的框架,需要熟悉很多的API,PyQt也能实现类似c#一样GUI开发, 只需要拖拽控件,无需熟记太多的API。
本文就探索用pycharm 和 PyQt5 开发python GUI程序。
1. 配置环境。
a. 下载并安装QtDesigner。
b. 将QtDesigner集成到Pycharm中,如图:
编写代码。
PyQt的核心就是信号与槽。
先拖拽几个控件,通过上图定义的工具,就可以轻松的定义UI.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(180, 80, 47, 13))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(390, 130, 47, 13))
self.label_2.setObjectName("label_2")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(190, 150, 75, 23))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "show"))
self.label_2.setText(_translate("MainWindow", "TextLabel"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
然后定义一个main函数调用一下。
import sys
from passlevel.first import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSlot
class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.setupUi(self)
@pyqtSlot()
def on_pushButton_clicked(self):
print("hello")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mywindow = MyWindow()
mywindow.show()
sys.exit(app.exec_())
运行成功。打包。
安装一个pyinstaller
pip install pyinstaller
然后运行命令:
pyinstaller -F -w yourscript
参数说明:
-F 表示生成单个可执行文件
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标
最终效果就是这样子的。
作者简介:
Snake, 人称安蜀黍,专职软件测试10几年,测试界的老司机。
更多精彩,请关注微信公众号:python爱好部
python写前端图形界面_Python图形界面开发相关推荐
- python复杂美观的图形界面_Python图形界面美化的方法论
很多人都吐槽,使用 Tkinter.PyQt5等工具制作出来的图形界面程序太丑了.既然觉得它丑,我们来想想,它为什么会那么丑. 文章目录 功能性是开发的第一要务 模块提供的都是原生组件 界面的美化的几 ...
- python实现监控数据界面_python 监控界面
MySQL MTOP - 开源 MySQL 企业监控系统 MySQLMTOP是一个由Python+PHP开发的MySQL企业级监控系统.系统由Python实现多进程数据采集和告警,PHP实现WEB展示 ...
- 用Python写前端是什么体验?
Anaconda公司在最近的PyConUS2022发布了PyScript,引发轰动...... 1 PyScript简介 PyScript是一个框架,允许用户在浏览器中使用HTML的界面和Pyodid ...
- python做个后端系统_Python做后端开发的优势
Python做后端开发的优势 1. Python开发人员的背景丰富多彩,阵营规模很大,这直接导致了Python的各种lib比Ruby多很多很多很多 2. 和Ruby相反,Python的哲学是&qu ...
- python写前端图形界面_如何Tkinter模块编写Python图形界面
一.为何使用Tkinter而非PyQt 众所周知,在Python中创建图形界面程序有很多种的选择,其中PyQt和wxPython都是很热门的模块包,这些第三方的图形界面模块功能强大.配置丰富,界面美观 ...
- python制作软件界面_Python图形界面GUI程序设计
1.GUI是什么? 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 图形用户界面是一种人与计算机通信的界面显 ...
- python软件运行界面_python运行界面 python的图形用户界面怎么运行
为什么用Python开发界面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...
- python 写一个带有菜单界面_python菜单界面
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python中有多个图形界面开发的库,一般我们会见到用到的有tkinter,p ...
- python简单可视化聊天界面_Python可视化界面
可视化界面程序,本来不想写,只在console台运行就好,但是后来很多小伙伴都有这样的需求: 需要从redis中删除某个key的value,然后需要跟key去查,有些小伙伴不会用redis,就产生如下 ...
- python写前端代码_python学习之路前端-JavaScript
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...
最新文章
- 为品牌管理增加检索名称和状态项
- 【Verilog HDL 训练】第 03 天
- redis指定配置文件启动_深入学习 Redis 集群搭建方案及实现原理
- STM32 电机教程 22 - 基于ST MCLIB无感FOC算法变有感(HALL)FOC算法
- 开源视频会议bigbluebutton
- ExtJs 备忘录(4)—— Form表单(四) [ 数据提交 ]
- 漫步微积分三十八——流体静力学
- xml文件操作小结(3)---selectsinglenode方法中的xpath%%%%转自酷网动力(www.ASPCOOL.COM)。...
- C++ 从入门到入土(English Version)Section 8 : Recursion, Searching and Backtracking
- checked exception和runtime exception and error
- 提示wininet.dll文件找不到的解决
- 计算机在心理学实验中的应用举例,E-Prime在心理学实验中的应用 曾祥炎
- 小米5短接点 | 小米红米高通短接9008教程视频教程 | 高通9008驱动下载 | 不拆机怎么直接进9008 | 什么线能直接进9008
- Unknown column 'hghefsdhjd' in 'where clause'
- 使用echarts-gl 绘制3D地球配置详解
- Android x86安装教程
- 使用腾讯云sms短信服务
- 罗技无线鼠标接收器无法配对的详细解决办法
- 阿里云1+X-云计算开发与运维-中级(判断题)
- 汇编语言基础之七- 框架指针的省略(FPO)
热门文章
- 两种方式打开jar文件
- PSP3000破解原理——缓冲区溢出漏洞随谈
- Android apk 系统签名
- Linux操作系统原理与应用(陈莉君)——学习笔记
- 可以玩java游戏的软件_手机上能玩电脑游戏的软件有哪些 用什么软件可以在手机上玩电脑游戏...
- book118免费下载文档方法
- PTA Python程序设计-01
- 罗克韦尔Studio5000遇上西门子Process Simulate:数字化仿真与虚拟调试案例
- USBCAN、CAN分析仪、CANCANFD综合测试分析软件LKMaster主要功能一览
- nbu备份脚本 linux,NBU60网络备份大全之Linux设备管理(参考Word)