gpt4 book ai didi

python - PyQT按钮点击不起作用

转载 作者:行者123 更新时间:2023-12-01 04:44:26 28 4
gpt4 key购买 nike

所以我的问题是,我不想为一堆按钮手动编写大量代码,而是想为 QPushButton 创建一个类,然后在调用该类来创建时更改如此多的变量我的个人按钮。

我的问题是,尽管调用了 clicked.connect 函数并且运行代码时没有错误,但我的按钮似乎不可单击。以下是按钮类的相关部分:

class Button(QtGui.QPushButton):
def __init__(self, parent):
super(Button, self).__init__(parent)
self.setAcceptDrops(True)

self.setGeometry(QtCore.QRect(90, 90, 61, 51))
self.setText("Change Me!")

def retranslateUi(self, Form):
self.clicked.connect(self.printSomething)

def printSomething(self):
print "Hello"

这是我如何调用按钮类:

class MyWindow(QtGui.QWidget):
def __init__(self):
super(MyWindow,self).__init__()
self.btn = Button(self)

layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.btn)
self.setLayout(layout)

最佳答案

您应该在 __init__ 方法上执行与 clicked 信号的连接:

from PyQt4 import QtGui,QtCore

class Button(QtGui.QPushButton):
def __init__(self, parent):
super(Button, self).__init__(parent)
self.setAcceptDrops(True)

self.setGeometry(QtCore.QRect(90, 90, 61, 51))
self.setText("Change Me!")
self.clicked.connect(self.printSomething) #connect here!

#no need for retranslateUi in your code example

def printSomething(self):
print "Hello"

class MyWindow(QtGui.QWidget):
def __init__(self):
super(MyWindow,self).__init__()
self.btn = Button(self)

layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.btn)
self.setLayout(layout)


app = QtGui.QApplication([])
w = MyWindow()
w.show()
app.exec_()

您可以运行它,并且每次单击按钮时都会在控制台上看到打印的Hello

retranslateUi 方法适用于 i18n。您可以查看here .

关于python - PyQT按钮点击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807630/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com