Python PyQt4:如何/何时从QTabWidget的子类发出自定义信号?
我有一个带有QTabWidget的UI,其最后一个选项卡允许用户添加一个新选项卡,如Firefox: 但是我不能完全得到我需要的行为。现在,我已经使用了信号Python PyQt4:如何/何时从QTabWidget的子类发出自定义信号?,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我有一个带有QTabWidget的UI,其最后一个选项卡允许用户添加一个新选项卡,如Firefox: 但是我不能完全得到我需要的行为。现在,我已经使用了信号currentChanged(int),但正如其名称所述,如果用户在“+”选项卡上单击两次,它将仅第一次发出信号。我希望我自制的addTab方法在每次单击“+”选项卡时启动,而不仅仅是在当前选项卡更改时启动 所以我想创建一个QTableWidget的子类来添加一个自制的信号,例如tabClicked。但我不明白信号是什么时候发出的。这就是我
currentChanged(int)
,但正如其名称所述,如果用户在“+”选项卡上单击两次,它将仅第一次发出信号。我希望我自制的addTab
方法在每次单击“+”选项卡时启动,而不仅仅是在当前选项卡更改时启动
所以我想创建一个QTableWidget的子类来添加一个自制的信号,例如tabClicked
。但我不明白信号是什么时候发出的。这就是我到目前为止所做的:
from PyQt4 import QtGui
from PyQt4.QtCore import pyqtSignal
class QTableWidgetClickable(QtGui.QTabWidget):
tabClicked = pyqtSignal(int)
def __init__(self, parent=None):
super(QTableWidgetClickable, self).__init__(parent)
def tabClicked(self):
print "tab clicked!"
我应该用类似于self.emit(SIGNAL(“tabClicked(int)”)
的东西发射吗?但是什么时候?我如何让计算机明白我只在单击选项卡时才需要这种行为?
我把事情复杂化了吗
我很喜欢使用信号,但看起来我不太喜欢创建它们:)如果我不够清楚,请询问更多细节
提前多谢 我建议您添加如下
QPushButton
:
class QTableWidgetClickable(QtGui.QTabWidget):
tabClicked = pyqtSignal(int)
def __init__(self, parent=None):
super(QTableWidgetClickable, self).__init__(parent)
# add qpushbutton
self.addButton = QtGui.QPushButton()
# connect a signal
self.addButton.clicked.connect(self.tabClicked)
def tabClicked(self):
print "tab clicked!"
def tabClicked(self):
print "tab clicked!"
some_intiger = 0
self.tabClicked.emit(some_intiger)
或者你可以发出这样的信号:
class QTableWidgetClickable(QtGui.QTabWidget):
tabClicked = pyqtSignal(int)
def __init__(self, parent=None):
super(QTableWidgetClickable, self).__init__(parent)
# add qpushbutton
self.addButton = QtGui.QPushButton()
# connect a signal
self.addButton.clicked.connect(self.tabClicked)
def tabClicked(self):
print "tab clicked!"
def tabClicked(self):
print "tab clicked!"
some_intiger = 0
self.tabClicked.emit(some_intiger)
然后,您应该将这个发出的信号连接到\uuuu init\uuuu()
可能的重复是的,确实是重复。谢谢你指出这个页面,我以前自己找不到:)QPushButton就是这样:)非常感谢。我接受这个答案!对于任何阅读本文的人,请参阅我原始问题中关于复制的注释,以了解有关将按钮移动到正确位置的更多提示。