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程序。
配置环境。
a. 下载并安装QtDesigner。
b. 将QtDesigner集成到Pycharm中,如图:
编写代码。
PyQt的核心就是信号与槽。
先拖拽几个控件,通过上图定义的工具,就可以轻松的定义UI.
from PyQt5 import QtCore, QtGui, QtWidgetsclass 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.translateMainWindow.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 sysfrom passlevel.first import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSlotclass 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 表示可执行文件的图标
最终效果就是这样子的。
更多精彩,请关注微信公众号: python爱好部落
python 图形界面开发相关推荐
- python简单编程例子-中文方便就用中文编程!Python图形界面开发实例
原标题:中文方便就用中文编程!Python图形界面开发实例 之前做的一个Python小程序,功能很简单,面对用户群也很窄,是五笔编码编.校人员使用的五笔编码编辑器. 这样的"周末" ...
- python界面开发工具-python图形界面开发用什么
作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助. Python 的 UI 开发工具包 Kivy(推荐学习:Python视频教 ...
- python图形界面开发用什么
作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助. Python 的 UI 开发工具包 Kivy Kivy是一个开源工具包能够 ...
- Python图形界面开发(一)——pyside入门
目录 前言 如果用 Python 语言开发 跨平台 的图形界面的程序,主要有3种选择: PySide2.PyQt5 都是基于著名的 Qt 库. 安装 PySide2 安装PyQt5 案例一 前言 众所 ...
- Python图形界面开发教程-课程笔记-2022-2-14
目录 1.1 写一个弹窗 1.2了解模板代码的组成 1.3 根据模板代码写一个界面 1.4 窗口关闭事件 1.5 通过字典获取返回值values 1.6 自定义主题 1.7 自定义窗口 1.8 布局和 ...
- Python 图形界面开发哪个库好
Tkinter 是官方提供的图形界面开发库,用于封装Tk GUI工具包,跨平台,但是控件少,帮助文档不健全,不便于开发复杂的图形用户界面. b站小甲鱼有Tkinter的教程 PyQt 非官方提供的图形 ...
- Python图形界面开发的几种方案
如果用 Python 语言开发 跨平台 的图形界面的程序,主要有3种选择: Tkinter 基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库.稳定.发布程序较小 ...
- linux python 图形界面开发_python在linux制作图形界面(snack)
snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...
- Python图形界面开发——PyQt5环境的搭建(史上最详细,保证都能搭建好)
前期准备:PyQt5以及其他组件的下载与安装 在python的图形界面开发过程中,我们需要三个组件,分别是:PyQt5.pyqt5-tools.PyQt5Designer,我们直接在命令行输入下面的代 ...
最新文章
- 不错的jquery插件
- 学习笔记——Numpy基本操作(二)
- 洞悉物联网发展1000问之物联网会产生哪些独角兽?机会在哪里?
- 微信小程序时间转换成时间戳、获取当前时间戳、获取当前时间、时间戳加减
- SSRF(服务端请求伪造)
- oracle表空间可以迁移,Oracle 表空间迁移
- 使用java.util.concurrent包处理多线程
- Php 魔术函数性能,php常用的魔术函数详细解析
- vue的matcher_vue-router工作原理概述和问题分析
- ARM(IMX6U)裸机主频和时钟
- Apollo进阶课程⑳丨Apollo感知之旅——机器学习与感知的未来
- 工具用途_小工具大用途:万能扳手、开瓶器、开箱器,DIY16种用法,玩过吗
- Pytorch和caffe对maxpool模式ceil比较
- 内置函数的数据聚合NumpyPandas
- html中嵌入flvplayer.swf播放器,播放视频
- 施努卡:锂电池电芯底面和侧板的压胶面积
- IDEA自动生成serialVersionUID的设置
- python语言的就业方向_Python语言就业方向
- 最强升级系统的锚点连接
- 控制台基于Quartz.Net组件实现定时任务调度(一)