【PyQt5】界面编写——信号槽

【写在前面的话】  

  开始学习python界面的编程,之前用是自带的tinker,界面编写比较简单。这次打算用Qt designer来写界面。所以有些关于调用的动作连接之类的弄得不是很清楚,在这里就不是触发动作之类的,而是叫信号槽。根据控件来编写所触发的动作。

 

【步骤】

  1、在直接拉扯控件形成想要的界面。如图1所示:

 

  2、利用前面的转换代码,形成界面代码。

 1 from PyQt5 import QtCore, QtGui, QtWidgets
 2 
 3 class Ui_MainWindow(object):
 4     def setupUi(self, MainWindow):
 5         MainWindow.setObjectName("MainWindow")
 6         MainWindow.resize(640, 480)
 7         self.centralwidget = QtWidgets.QWidget(MainWindow)
 8         self.centralwidget.setObjectName("centralwidget")
 9         self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
10         self.textBrowser.setGeometry(QtCore.QRect(290, 80, 256, 192))
11         self.textBrowser.setObjectName("textBrowser")
12         self.pushButton = QtWidgets.QPushButton(self.centralwidget)
13         self.pushButton.setGeometry(QtCore.QRect(50, 140, 93, 28))
14         self.pushButton.setObjectName("pushButton")
15         MainWindow.setCentralWidget(self.centralwidget)
16         self.menubar = QtWidgets.QMenuBar(MainWindow)
17         self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 26))
18         self.menubar.setObjectName("menubar")
19         MainWindow.setMenuBar(self.menubar)
20         self.statusbar = QtWidgets.QStatusBar(MainWindow)
21         self.statusbar.setObjectName("statusbar")
22         MainWindow.setStatusBar(self.statusbar)
23 
24         self.retranslateUi(MainWindow)
25         QtCore.QMetaObject.connectSlotsByName(MainWindow)
26 
27     
28 
29     def retranslateUi(self, MainWindow):
30         _translate = QtCore.QCoreApplication.translate
31         MainWindow.setWindowTitle(_translate("MainWindow", "测试界面"))
32         self.pushButton.setText(_translate("MainWindow", "按一下显示"))

 

  3、然后再写另外一个逻辑代码文件。

 

 1 import sys
 2 from PyQt5.QtWidgets import QApplication,QMainWindow
 3 from test import *
 4 
 5 
 6 class MyMainWindow(QMainWindow,Ui_MainWindow):
 7     def __init__(self,parent=None):
 8         super(MyMainWindow,self).__init__(parent)
 9         self.setupUi(self)
10         
11     
12 if __name__=="__main__":
13     app = QApplication(sys.argv)
14     myWin = MyMainWindow()
15     myWin.show()
16     sys.exit(app.exec())

这个时候能够出现界面了。

 

  4、增加控件的触发动作。        

  我的要求是,点击一下 pushButton 然后在textbrowser 中显示文本。

那么,需要在界面代码中添加这样一句:

 

 1 self.retranslateUi(MainWindow)

2 self.pushButton.clicked.connect(self.text_show)

3 QtCore.QMetaObject.connectSlotsByName(MainWindow) 

text_show 就是后面需要编写的触发动作的函数

 

  5、然后在逻辑页面中,需要增加 text_show()这个函数的定义。

class MyMainWindow(QMainWindow,Ui_MainWindow):
    def __init__(self,parent=None):
        super(MyMainWindow,self).__init__(parent)
        self.setupUi(self)
    
    def text_show(self):
        self.textBrowser.append("这是我的点击")   

     ********注意:在这里,必须要增加连接的控件的名字,然后只能用控件自己的功能。比如textbrowser 的功能就有append(),能够增加。

 

  6、然后运行逻辑代码,最后形成你想要的界面。

 

 

***************************

  textbrowser中比如输入的是   文本 str  方式,单纯的list并不能进行显示。必须转换成str

  textbrowser中方法的区别:

  ① insertPlainText(),逐行添加不换行

  ② setText()   ,先清空内容 再添加内容

  ③append()   ,  自动换行。

转载于:https://www.cnblogs.com/youngyan/p/10887261.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值