检查pyqt5中的按钮是否被单击



大家好,我想检查一下按钮是否点击了

class MainWindow(QMainWindow):
def __init__(self):

super(MainWindow, self).__init__()
loadUi("app.ui", self)
self.setWindowIcon(QIcon('discord.png'))
self.setWindowFlag(Qt.WindowMinimizeButtonHint, False)
self.setWindowFlag(Qt.WindowMaximizeButtonHint, False)
self.setFixedSize(self.size())
self.regis = self.findChild(QPushButton, "pushButton")
self.regis.clicked.connect(self.connectt)
self.cl = self.findChild(QPushButton, "pushButton_2")     
self.show()
QApplication.processEvents()

def connectt(self): 
ID = self.findChild(QLineEdit, "lineEdit")
RP = Presence(ID.text())
RP.connect()
print("connected")
self.statusBar.showMessage('connected') 
if self.cl.clicked():
print("disconnected")

app = QApplication(sys.argv)
UIWindow = MainWindow()
app.exec_()

我试图使用self.cl.clicked(),但它没有工作!

但是我得到了这个错误:

if self.cl.clicked():
^^^^^^^^^^^^^^^^^
TypeError: native Qt signal is not callable

有谁能帮帮我吗?

你不需要"if self.cl.clicked():

假设"regis"是你的按钮,这一行:

self.regis.clicked.connect(self.connectt)

使它一旦你点击你的注册"按钮,整体"连接"函数将执行。

And if "是另一个按钮,你的代码对我来说没有意义,因为你所做的是验证你的按钮被点击时,您点击您的"注册"按钮(基本上是同时点击两个按钮,在我看来这很奇怪)。也许你应该考虑另一种方法来做你想做的事。

让我知道这是否回答了你的问题。

编辑:你可以像这样使用代码块:

class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
loadUi("app.ui", self)
self.setWindowIcon(QIcon('discord.png'))
self.setWindowFlag(Qt.WindowMinimizeButtonHint, False)
self.setWindowFlag(Qt.WindowMaximizeButtonHint, False)
self.setFixedSize(self.size())
self.pushButton.clicked.connect(self.pushButtonOperations)
self.pushButton_2.clicked.connect(self.pushButton_2Operations)
self.cl = self.findChild(QPushButton, "pushButton_2")     
self.show()
QApplication.processEvents()

def pushButtonOperations(self): 
ID = self.findChild(QLineEdit, "lineEdit")
RP = Presence(ID.text())
RP.connect()
print("connected")
self.statusBar.showMessage('connected')
def pushButton_2Operations(self):
print("disconnected")                               
app = QApplication(sys.argv)
UIWindow = MainWindow()
app.exec_()

最新更新