簡體   English   中英

多個連接按鈕GUI PyQt5

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM