Python——GUI界面编程(一)

这篇具有很好参考价值的文章主要介绍了Python——GUI界面编程(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小序

有的时候想一想曾经的那些人和事,
时时嘴角上扬,
是过去太值得留恋,
还是经历的是最美好的生活与青春

今天来谈一谈GUI编程,好久前发的一个资源,得到了大家的一些认可
这次正好好好地说一下GUI编程的事情

正文

GUI简介

python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt

GUI 即图形用户界面,今天说一下曾经实现的Python - GUI 编程,使用QtDesigner 实现PyQt 编程

Qt包括一个图形用户界面设计器Qt Designer。PyQt能够从Qt Designer生成Python代码,还可以添加使用Python编写的新的GUI控件到Qt Designer

PyQt常用的几个模块
(1) QtCore模块:Qt Core类提供核心的非GUI功能,所有模块都需要这个模块。
(2) QtGui模块:提供 GUI 程序的基本功能,Qt Gui 模块提供的是所有图形用户界面程序都需要的通用功能。
(3) QtWidgets模块:包含提供一组UI元素,以创建用户界面。
(4) QtNetWork模块:包含用于网络编程的类。
(5) QtXml模块:包含用于处理XML文件的类。
(6) QtOpenGL模块:渲染使用OpenGL库创建的3D或2D图形。
(7) QtSql模块:该模块提供了用于操作数据库的类。

PyQt 安装

安装 PyQt5 和 PyQt5-tools

pip install PyQt5
pip install PyQt5-tools

配置环境变量

  1. 右击我的电脑->属性->高级->环境变量
    用户变量:新建->变量名:QT_QPA_PLATFORM_PLUGIN_PATH
    变量值:C:\azcx\python\Lib\site-packages\PyQt5\Qt\plugins
    python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
    系统变量:path->编辑->添加
    C:\azcx\python\Lib\site-packages\PyQt5\Qt\plugins
  2. 配置QtDesigner
    打开Pycharm->文件->设置->工具->外部工具
    点击右上角的加号:在设置中,Program(程序)选择PyQt安装目录中designer.exe 路径;Work directory(工作目录)使用变量 F i l e D i r FileDir FileDir
    python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
  3. 配置 PyUIC
    在设置中,Program(程序)写入python.exe的路径; Parameters(参数)写入
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Work directory(工作目录)使用变量 $FileDir$ 

python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
4. 可以通过打开Pycharm->工具->External Tools 打开QtDesigner
python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt

PyQt——GUI设计

使用PyQt进行Python GUI设计
可以直接使用代码设计界面,
也可以先使用Qt Designer进行可视化设计,然后将生成的.ui文件转换成.py文件。使用Qt Designer,可以方便地创建复杂的GUI界面。

利用PyQt创建一个Python GUI一般需要以下几个步骤:(具体内容可以看官方文档)
(1) 使用Qt Designer或代码创建GUI界面;
(2) 在属性编辑器中修改部件的属性;
(3) 使用pyuic工具生成一个python类;
(4) 适当修改GUI对应的python类;
(5) 编写所需的slots(槽函数),并建立信号和槽的连接,运行程序

简单程序示例

from PyQt5 import QtWidgets
class MyWindow(QtWidgets.QWidget): #定义窗体类    
	def __init__(self):   #构造函数        
		super(MyWindow,self).__init__()
	  
import sys
app=QtWidgets.QApplication(sys.argv)
# sys.argv从程序外部获取参数,因为图形编程有时也需要从命令行传递参数给程序
window=MyWindow()
window.show()
sys.exit(app.exec_())

上面是一个简单的窗口程序,实现效果如下
python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt

layout布局

可以在QtDesigner 中选择需要的布局形式,具体如下所示
python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
当如上图完成后,即可保存为 .ui 格式的文件,之后利用PyUIC进行转换
python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
Ui_Form类默认继承的object类

信号与槽

在GUI编程,当用户改变了一个控件的状态(如按下按钮),此时需要通知另外的控件,也就是实现对象之间的通信,在QT中使用信号与槽的机制来实现
可以说,信号与槽是GUI编程的核心
Attention !
信号只能定义成类变量,在类的最上面声明,而不能定义成对象变量,最直观的就是在定义信号时,没有self

当对象改变其状态时,信号就由该对象发射(emit)出去,并且对象只负责发送信号。 槽用于接收信号,并且槽只是普通的对象成员函数。一个槽并不知道是否有其他信号与自己相连接。 两者通过Qobject对象的connect 绑定

(1) 一个信号可以连接到多个槽,当信号发出后,槽函数都会被调用,但是调用的顺序是随机的

self.pushButton.clicked.connect(self.firtPyQt5_button_click)
self.pushButton.clicked.connect(self.firtPyQt5_button_click_2)

同一个按钮的单击信号分别和槽(函数)firtPyQt5_button_click()、firtPyQt5_button_click_2()相连,当单击“pushButton”控件时,两个函数都被调用

(2)多个信号可以连接到同一个槽,其中任何一个信号发出,槽函数都会被执行

self.buttonOn.clicked.connect(self.showMessage)
self.buttonOff.clicked.connect(self.showMessage)

showMessage()函数同时绑定在两个button的clicked信号上,单击任何一个按钮都将自行showMessage()函数

(3)信号和槽的连接可以被移除,PyQt5提供了disconnect()成员函数来进行解绑

self.pushButton1.clicked.disconnect(self.pushButton.clicked)
self.pushButton.clicked.disconnect(self.firtPyQt5_button_click_2)

信号与槽设置

  1. Edit->Edit Signals/slots
  2. 选中一个控件,拖动鼠标左键
    python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt
编写槽函数
class Ui_Form(object):
    def setupUi(self, Form):
    	...
    	self.pushButton.clicked.connect(self.pushButton_2.hide)

	def retranslateUi(self, Form):
		...
	
if __name__=="__main__":
    import sys
    app=QtWidgets.QApplication(sys.argv)
    widget=QtWidgets.QWidget()    
    Ui=Ui_Form()    
    Ui.setupUi(widget)    
    widget.show()    
    sys.exit(app.exec_())

python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt

from PyQt5 import QtWidgets
from signal_slot import Ui_Form
import sys
class My_signal_slot(QtWidgets.QWidget,Ui_Form):
    def __init__(self):
    	super(My_signal_slot, self).__init__()
        self.setupUi(self) #加载窗体
        self.pushButton.clicked.connect(self.prn)        					     
    def prn(self):
    	print("打印测试")

if __name__=="__main__":
	app=QtWidgets.QApplication(sys.argv)
    main=My_signal_slot()  #创建实例
    main.show() #使用QWidget的show()方法     
    sys.exit(app.exec_())

python设计gui界面,Python,PyQt——GUI编程,数据库,python,数据库,开发语言,pyqt

总结:
  1. PyQt 信号定义与使用
from PyQt5 import QtCore,QtWidgets #引入模块 
# 创建自定义信号,只能定义成类变量
class Signaltest(QtWidgets.QWidget):
	# 创建信号
	mySignal_1 = QtCore.pyqtSignal()
	# 创建带有str类型参数的信号
	mySignal_2 = QtCore.pyqtSignal(str)
  1. PyQt 槽函数定义与使用
def Slot_mySignal_1(self):               #对应的信号无参    
	pass
def Slot_mySignal_2(self, str):     #对应的信号有str类型的参数   
	pass 
  1. 关联信号与槽
self.mySignal_1.connect(self.Slot_mySignal_1)
self.mySignal_2.connect(self.Slot_mySignal_2)
  1. 发送信号
# 无参数
self.mySignal_1.emit()
# 有参数
self.mySignal_2.emit(str)
样例
from PyQt5 import QtWidgets,QtCore
from def_signal_lot import Ui_Form
import sys
class Signaltest(QtWidgets.QWidget,Ui_Form):
    mySignal_1 = QtCore.pyqtSignal() #定义无参数信号    
    mySignal_2 = QtCore.pyqtSignal(str) #定义参数信号
    def __init__(self):        
    	super().__init__()        
    	self.setupUi(self)        #信号与槽链接 
    	self.pushButton.clicked.connect(self.pushbutton_print)
    	self.mySignal_1.connect(self.Slot_mySignal_1)        	    
    	self.mySignal_2.connect(self.Slot_mySignal_2)
    
    def pushbutton_print(self):
    	print("点击按钮")        
    	self.mySignal_1.emit() #发送不带参数信号        	   
    	self.mySignal_2.emit("test signal2")#发送带参数信号
    	   
    def Slot_mySignal_1(self): #槽函数的定义        
    	print("test signal1")    
    
    def Slot_mySignal_2(self, str):#槽函数的定义
        print(str)
if __name__=="__main__":
    app=QtWidgets.QApplication(sys.argv)    
    mytest=Signaltest()    
    mytest.show()    
    sys.exit(app.exec_())
       	   		        	

小结

今天只是简单的介绍一下Python—GUI编程的一些环境配置和基础的信号与槽的操作,其他的内容后续会陆续分享,欢迎感兴趣的友友持续关注。

此外,本文上面绑定的资源为Python—GUI 的应用实现
(Python学生信息管理系统GUI编程),里面有更多的实践与应用
感兴趣的欢迎下载,讨论

结束语

斜阳洒在了窗前,
夕阳也是幸福的,
在醒着的时间里,
去追寻生命中有意义的事吧,
去找寻属于自己的那束光~文章来源地址https://www.toymoban.com/news/detail-773112.html

到了这里,关于Python——GUI界面编程(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python入门系列】第八篇:Python中GUI编程和图形界面设计

    Python中的GUI编程是指使用Python语言创建图形用户界面(GUI)的过程。通过GUI,用户可以与程序进行交互,通过按钮、菜单、文本框等控件来操作程序。 Python提供了多个库和框架来实现GUI编程,其中最常用的是Tkinter、wxPython、PyQt和PyGTK等。这些库提供了丰富的控件和功能,使开

    2024年02月07日
    浏览(55)
  • 【100天精通python】Day39:GUI界面编程_PyQt 从入门到实战(下)_图形绘制和动画效果,数据可视化,刷新交互

    目录 专栏导读  6 图形绘制与动画效果 6.1 绘制基本图形、文本和图片

    2024年02月12日
    浏览(54)
  • PyQt5 GUI编程界面与函数相连

    在使用PyQt5的时候会出现一些需求 无法用代码一步步实现 ,而用GUI画完窗口之后,又要根据pyUIC5 自动生成的界面的参数 进行编程,这样增加了理解变量所需的时间。我查到了一个解决办法,就是 将界面设计与函数实现分开分别写 ,并用一个巧妙的方法将这俩在代码层面进

    2024年02月05日
    浏览(46)
  • python怎么做gui界面,python gui界面设计

    本篇文章给大家谈谈python怎么做gui界面,以及python gui界面设计,希望对各位有所帮助,不要忘了收藏本站喔。 开发图形用户界面(GUI)应用程序是Python的重要应用之一,标准库tkinter用来实现图形用户界面。 tkinter模块是Python事实上的GUI库,包含在Python的基本安装包中Python自动化

    2024年04月14日
    浏览(52)
  • Python——GUI界面编程(一)

    有的时候想一想曾经的那些人和事, 时时嘴角上扬, 是过去太值得留恋, 还是经历的是最美好的生活与青春 今天来谈一谈GUI编程,好久前发的一个资源,得到了大家的一些认可 这次正好好好地说一下GUI编程的事情 GUI 即图形用户界面,今天说一下曾经实现的Python - GUI 编程

    2024年02月03日
    浏览(51)
  • Python的GUI界面编程

    Python是一种高级编程语言,它被广泛应用于各种领域,包括数据分析、机器学习、Web开发等。Python的GUI界面编程也是其应用领域之一。在本文中,我们将介绍Python的GUI界面编程,包括其基本概念、使用方法和实际应用。 什么是GUI界面? GUI是Graphical User Interface的缩写,即图形

    2024年02月15日
    浏览(45)
  • 如何设计和构建一个PyQt图形用户界面(GUI)

    欢迎来到PyQt的世界!设计和构建一个图形用户界面(GUI)可以是一项令人兴奋且有趣的任务。 首先,你需要确保已经安装了PyQt。如果你还没有安装,可以通过以下命令在你的Python环境中安装: 现在,让我们开始设计你的第一个PyQt GUI! 第一步:创建窗口 想象一下,如果你

    2024年02月12日
    浏览(44)
  • python如何做出图形界面,python图形化界面设计gui

    本篇文章给大家谈谈python编写图形化界面的工具,以及python如何做出图形界面,希望对各位有所帮助,不要忘了收藏本站喔。 大家好,小编来为大家解答以下问题,python如何做出图形界面,用python做图形用户界面,今天让我们一起来看看吧! 一.定义理解 Python自带了tkinter 模

    2024年02月20日
    浏览(55)
  • Python GUI设计-PyQt5从入门到实践(第1-3章)

    良好的开端,等于成功的一半 ————柏拉图 1.1.3 Python的应用领域 Web开发、大数据处理、人工智能、自动化运维开发、云计算、爬虫、游戏开发。 Python ,PyCharm,模块:pyqt5、pyqt5-tools、pyqt5designer 2.3.1 安装Pyqt5及设计器 Pycharm:file–settings 安装三个包。 2.3.2 配置PyQt5设计器

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包