Eric4와 PyQt4를 사용하여 앱을 만들고 있지만 초보자 인 나랑 벗겨주세요.Python PyQt4 현재 열려있는 대화 상자를 참조하는 방법은 무엇입니까?
두 개의 대화 상자가 있습니다. 하나는 스레드로 실행되고 다른 하나는 레이블이있는 표준 대화 상자로 이미지로 변경하려고합니다.
메인 윈도우 스레드가 실행될 때마다 대화 상자에 표시된 현재 이미지를 새 이미지로 변경하고 싶습니다. 스레드가 실행될 때를 제외하고는 모두 잘 작동합니다. 새 이미지가있는 새 대화 상자가 만들어집니다. 현재 열려있는 대화 상자에서 이미지를 변경하고 싶습니다. 이미지를 변경
class SubWindow(QDialog, Ui_subWindow):
def __init__(self, parent = None):
QDialog.__init__(self, parent)
self.setupUi(self)
self.show()
def main(self, img):
pic = self.imgView
pic.setPixmap(QtGui.QPixmap(os.getcwd() + img))
스레드 : 내 모든 코드 만 해당 비트를 포함하지했습니다
class MainWindow(QDialog, Ui_MainWindow, threading.Thread):
def __init__(self, parent = None):
threading.Thread.__init__(self)
QDialog.__init__(self, parent)
self.setupUi(self)
self.show()
#some code here which does some stuff then calls changeImg()
def changeImg(self):
img = SubWindow()
img.main(img)
내부 이미지와
대화 상자. 어떤 도움을 주시면 감사하겠습니다. 감사.
하지만 의심스러운 : 나는
MainWindiw.__init__
기능에MainWindow
에 속성으로SubWindow
을 만드는 것이 좋습니다. 첫째, GUI 요소와의 상호 작용에 관해서는 Qt의 자체 스레딩 클래스 인'QThread'를 사용하는 것이 좋습니다. 둘째, 다른 스레드에 GUI 관련 내용을 넣지 않아야합니다. 모든 GUI 코드는 이벤트 루프와 동일한 스레드에서 실행되어야합니다. – Avaris