3
다른 스레드에서 메인 레이아웃을 수정하려고합니다. 그러나 함수 실행이() 호출되지 않습니다와 나는 오류가 있어요 :PyQt - 다른 스레드에서 GUI 수정
여기QObject::setParent: Cannot set parent, new parent is in a different thread
내 코드입니다 : 정말 그것을 얻을하지 않습니다
class FeedRetrievingThread(QtCore.QThread):
def __init__(self, parent=None):
super(FeedRetrievingThread, self).__init__(parent)
self.mainLayout = parent.mainLayout
def run(self):
# Do things with self.mainLayout
class MainWindow(QtGui.QDialog):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.mainLayout = QtGui.QGridLayout()
self.setLayout(self.mainLayout)
self.feedRetrievingThread = FeedRetrievingThread(self)
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.updateFeed)
self.timer.start(1000)
def updateFeed(self):
if not self.feedRetrievingThread.isRunning():
print 'Running thread.'
self.feedRetrievingThread.start()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
을, 왜 너무 어렵다 PyQt로 GUI에 액세스 하시겠습니까? C#에는 Invoke가 있습니다. PyQt에 그런 종류의 것이 있습니까?
타이머를 사용하지 않고 MainWindow.__init__
에서 직접 스레드를 만들려고했으나 작동하지 않았습니다.