气轻PyQt6 11控件互动与槽函数(有参数)
和【气轻PyQt6 10】的不同是,这里采用有参数的槽函数来处理从文本框和标签的互动。
from PyQt6 import QtCore, QtGui
from PyQt6.QtWidgets import *
from PyQt6.QtGui import QPalette,QFont, QColor, QIcon, QPixmap
from PyQt6.QtCore import Qt, pyqtSignal
import sys
class PyQt611(QWidget):
signal = pyqtSignal( str ) #定义一个信号
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('气轻PyQt6') # 设置窗口标题
self.resize(430, 60) # 设置窗口大小
self.signal.connect(self.updateLabel) # 连接信号与槽
self.edit = QLineEdit(self) # 输入框
self.edit.setGeometry(10, 0,240, 40) # 设置位置和大小
self.edit.setText('槽函数(有参数)')
self.edit.setStyleSheet('background-color:#FFE4B5;color : #32CD32; \
font: bold italic large /"SimSun/";font-size:25px')
img = 'arrowsright.png' # 按钮图标
self.btn = QPushButton('', self)
self.btn.setGeometry(250, 0, 40, 40)
self.btn.setIcon(QIcon(QPixmap(img)))
self.btn.setStyleSheet('background-color:#96CDCD;color : #FFE4C4; \
font: bold large /"SimSun/";font-size:16px')
self.btn.clicked.connect(self.buttonClicked)
self.tag = QLabel(self) # 设置label信息
self.tag.setGeometry(290, 0,120, 40) # 设置位置和大小
self.tag.setText('标签')
self.tag.setAlignment(Qt.AlignmentFlag.AlignHCenter)# 居中设置
self.tag.setToolTip('标签提示') # 设置标签提示
# 背景和前景颜色
self.tag.setStyleSheet('background-color:yellow;color : #6495ED; \
font: bold italic large /"Times New Roman/";font-size:25px')
self.show()
def buttonClicked(self):
edittext = self.edit.text()
self.signal.emit(edittext) # 发射信号
def updateLabel(self,s): # 槽函数
self.tag.setText(s)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = PyQt611()
sys.exit(app.exec())
执行结果
