氣輕PyQt5 11控件互動與槽函數(shù)(有參數(shù))
?
和【氣輕PyQt5 10】的不同是,這里采用有參數(shù)的槽函數(shù)來處理從文本框和標簽的互動。
?
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont, QIcon, QPixmap
from PyQt5.QtCore import Qt, pyqtSignal
import sys
?
class PyQt511(QWidget):
??? signal = pyqtSignal(? )???????????????????????????? #定義一個信號
??? def __init__(self):
??????? super().__init__()
?
??????? self.initUI()
??? def initUI(self):
??????? self.setWindowTitle('氣輕PyQt5')??????????????? # 設置窗口標題
??????? self.resize(470, 60)??????????????????????????? # 設置窗口大小
?
??????? self.signal.connect(self.updateLabel)?????????? # 連接信號與槽
?
??????? self.edit = QLineEdit(self)???????????????????? # 輸入框
??????? self.edit.setGeometry(10, 0,240, 40)??????????? # 設置位置和大小
??????? self.edit.setText('槽函數(shù)(有參數(shù))')
??????? self.edit.setStyleSheet('background-color:#FFE4B5;color : #32CD32; \
??????????????????? font: bold italic large /"Times New Roman/";font-size:25px')
??????? self.edit.returnPressed.connect(self.updateLabel)
?
??????? img = 'arrowsright.png'???????????????????????? # 按鈕圖標
??????? self.btn = QPushButton('', self)
??????? self.btn.setGeometry(250,0,40,40)?????????????? # 設置位置和大小
??????? self.btn.setStyleSheet('background-color:#96CDCD;color : #FFE4C4; \
??????????????????? font: bold large /"SimSun/";font-size:16px')
??????? self.btn.setIcon(QIcon(QPixmap(img)))
??????? self.btn.clicked.connect(self.updateLabel)
?
??????? self.tag = QLabel(self)???????????????????????? # 設置label信息
??????? self.tag.setGeometry(290, 0,160, 40)??????????? # 設置位置和大小
??????? self.tag.setText('標簽')
??????? self.tag.setToolTip('標簽提示')???????????????? # 設置標簽提示
??????? self.tag.setAlignment(Qt.AlignCenter)?????????? # 居中設置
?????????????????????????????????????????????????? ?????# 背景和前景顏色
??????? 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)????????????????????? # 發(fā)射信號
?
??? def updateLabel(self):
??????? t = self.edit.text()
??????? self.tag.setText(t)
?
if __name__ == '__main__':
??? app = QApplication(sys.argv)
??? window = PyQt511()
??? sys.exit(app.exec_())
?
