本文的目的:通过pyqt design 图形化python GUI来实现, 点击按钮后,TextLabel的文字内容改变
使用的编译器为VS CODE ,并安装【PYQT Integration】插件对图形化的.UI进行编译,将.ui转换为.py程序,其他编译器下对pyqt进行编译是一样的道理
首先,你需要了解pyqt design,这是一个非常简单的GUI界面生成器,其实就是将pyqt的程序以图形化的方式展示出来并方便像我们这种没有编程基础的人使用。
从左侧拖拽一个按钮(拖进来叫pushButton),和一个label(拖进来叫TextLabel)
并且记得在pyqt design右侧——选中按钮——属性编辑器——QObject——objectName中,把按钮的名字改为pushButton_1,把label名字改为textlabel_1,这样可以方便后面调用。
然后需要为pushButton_1这个按钮附加一个触发命令,也就是所谓的【信号/槽】,简单理解就是一个动作绑定,但是我自己也没搞明白,等我搞明白了我再仔细写一个文章。
槽是这么设置的,点击左上角第七个图形化按钮,如图所示,它会进入到附加槽和信号的界面,点击pushbutton并且拖出来一个长得像地线的东西,这时候会弹出一个对话框,我们点击这个clicked()这个动作,也就是点击动作,然后点击右侧的【编辑】,在弹出的对话框中点击绿色加号,增加一个buttonclick()事件,记得一定要加括号,不然无法添加。,之后点击确定,在右侧选择你刚刚添加的这个buttonclick(),点击ok,可以看到button连接出来两个线,这样pyqt design的配置就完成了。
保存为一个.ui文件
在vscode里面打开这个保存.ui文件的文件夹,然后找到刚刚保存的.ui文件,右键,选择pyqt:compile form(注意,这个选项必须安装【PYQT Integration】插件才有),这时候插件会把.ui文件转换为一个.py的文件。作为你的程序的样式
之后我们需要为这个样式程序编写运行的文件:
完整的代码如下所示:
from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMainWindow, QMessageBox, QApplication, QGraphicsScene, QGraphicsPixmapItem, QCheckBox, QLabel from PyQt5.QtGui import QImage, QPixmap import sys from Ui_untitled import Ui_MainWindow class mywindow(QMainWindow, Ui_MainWindow): def __init__(self): super(mywindow,self).__init__() self.setupUi(self) #此处的buttonclick为刚刚设置的触发槽名字 def buttonclick (self): #此处textlabel_1为刚刚设置的TextLabel,setText为设置其文本内容 self.textlabel_1.setText('你点到button啦') if __name__ == "__main__": app = QApplication(sys.argv) window = mywindow() window.show() sys.exit(app.exec_())
简单解释一下,第一段from导入from之类的,是从python中导入需要调用的库。这个不用管,复制就行
下面这个Ui_untitled是你刚刚通过untitled.ui编译出来的Ui_untitled.py文件的名字,需要修改这个红色的字为你自己的程序名字
from Ui_untitled import Ui_MainWindow
后面这两句话是重点
#此处的buttonclick为刚刚设置的触发槽名字 def buttonclick (self): #此处textlabel_1为刚刚设置的TextLabel,setText为设置其文本内容 self.textlabel_1.setText('你点到button啦')
def buttonclick (self):
def后面这个buttonclick为你刚刚设置的触发命令名字buttonclick(),不要搞混了。
self.textlabel_1.setText('你点到button啦')
这个textlabel_1为最开始设置的label的objectname,而setText为设置这个值的命令,括号里写需要显示的文字内容就可以了。
最后这个只是让程序运行起来的代码,复制就行了。
if __name__ == "__main__": app = QApplication(sys.argv) window = mywindow() window.show() sys.exit(app.exec_())
运行以后,就可以实现点击按钮,修改label文字的功能
如果想要修改文字属性,则只需要将
self.textlabel_1.setText('你点到button啦')
setText这个指令更改为修改文字颜色对应的指令,括号里面的命令按要求更改就可以了
20211215艾伦
www.gongyesheji.org