[英]Multiple connect button GUI PyQt5
我正在嘗試使用PyQt5在python 3中構建GUI界面。 我已經將QPushButton連接到QLineEdit,以便可以清除用戶編寫的內容,例如(在類中工作):
self.textboxA = QLineEdit(self)
self.buttonA = QPushButton('Clear', self)
self.buttonA.clicked.connect(self.textboxA.clear)
但是,如果我有多個文本框,並且希望特定按鈕僅清除選定數目的文本框(例如,僅文本框A和C),該怎么辦? 我嘗試過:
self.textboxA = QLineEdit(self)
self.textboxB = QLineEdit(self)
self.textboxC = QLineEdit(self)
self.buttonA = QPushButton('Clear', self)
self.buttonA.clicked.connect(self.textboxA.clear,
self.textboxC.clear)
但它一直在給我寫TypeError:需要Qt.ConnectionType,而不是'builtin_function_or_method'
我不是很了解
誰能幫我?
提前非常感謝
試試吧:
import sys
from PyQt5.QtWidgets import (QMainWindow, QApplication, QWidget,
QLineEdit, QPushButton, QVBoxLayout)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
main_layout = QVBoxLayout()
self.textboxA = QLineEdit()
self.textboxB = QLineEdit()
self.textboxC = QLineEdit()
self.buttonA = QPushButton('Clear -> textboxA, textboxC')
self.buttonA.clicked.connect(self.clearTextboxs)
main_layout.addWidget(self.textboxA)
main_layout.addWidget(self.textboxB)
main_layout.addWidget(self.textboxC)
main_layout.addWidget(self.buttonA)
central_widget = QWidget()
central_widget.setLayout(main_layout)
self.setCentralWidget(central_widget)
def clearTextboxs(self):
self.textboxA.clear()
self.textboxC.clear()
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
最簡單,最優雅的方法是連接到每個功能:
self.buttonA.clicked.connect(self.textboxA.clear)
self.buttonA.clicked.connect(self.textboxC.clear)
如果有很多,只需使用for循環:
for textbox in (self.textboxA, self.textboxB, self.textboxC):
self.buttonA.clicked.connect(textbox.clear)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.