[英]Cannot emit Signal in PyQT
class MyPlotWidget(pg.PlotWidget):
myplotSignal = QtCore.pyqtSignal(int)
def __init__(self):
super().__init__()
self.clickplotSignal = self.scene().sigMouseClicked
self.clickplotSignal.connect(self.mouse_clicked)
def mouse_clicked(self, mouseClickEvent):
self.signal = id(self)
plotDialog.plotIndex = plotDialog.id_list.index(self.signal)
self.myplotSignal.emit(self.signal)
class MyGraph():
@QtCore.pyqtSlot(int)
def test(self,signal):
print("signal accepted")
class another(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.plot = MyPlotWidget()
self.graph = MyGraph()
self.plot.myplotSignal.connect(self.graph.test)
很長一段時間以來,我一直通過以這種方式指定信號和插槽來運行函數,
但這次它似乎沒有在MyPlotWidget
class 中發出。 為什么? 請幫我:(((
我用clickplotSignal
直接連接slot,沒用。
您發出信號的方法是有效的。 我相信沒有調用 mouse_clicked 方法,這就是你的信號永遠不會發出的原因。
請 go 運行 function 覆蓋方法。 希望對你有用。
class Worker(QObject):
finished = pyqtSignal()
progress = pyqtSignal(int)
def run(self):
"""Long-running task."""
for i in range(5):
sleep(1)
self.progress.emit(i + 1)
self.finished.emit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.