Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理多个windows Qt4 python的最佳方法_Python_Qt_User Interface_Pyqt_Pyqt4 - Fatal编程技术网

处理多个windows Qt4 python的最佳方法

处理多个windows Qt4 python的最佳方法,python,qt,user-interface,pyqt,pyqt4,Python,Qt,User Interface,Pyqt,Pyqt4,我有两个主窗口,将运行所有的时间和打开其他窗口。每个窗口都必须相互通信。所有窗口都是用qt designer创建的,正如我在另一个问题中读到的,我不应该修改这些文件,所以我尝试创建一个新类(communicator)来处理所有作业。 构建这样一个项目的最佳方式是什么。因此,我现在如何才能在这些窗口之间进行最佳通信,例如,如果我在“self.mainWindows\u图像”中按下一个按钮,我想在“self.mainWindows\u分类器”中执行一些操作 from classifier impor

我有两个主窗口,将运行所有的时间和打开其他窗口。每个窗口都必须相互通信。所有窗口都是用qt designer创建的,正如我在另一个问题中读到的,我不应该修改这些文件,所以我尝试创建一个新类(communicator)来处理所有作业。
构建这样一个项目的最佳方式是什么。因此,我现在如何才能在这些窗口之间进行最佳通信,例如,如果我在“self.mainWindows\u图像”中按下一个按钮,我想在“self.mainWindows\u分类器”中执行一些操作

from classifier import Form as Form_classifier
from cnn_avg import Form as Form_cnn_avg
from images import Form as Form_images
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys


class Communicator():
    def __init__(self, parent=None):

        self.mainWindow_images = Form_images()
        self.mainWindow_images.show()

        self.mainWindow_classifier = Form_classifier()
        self.mainWindow_classifier.show()


def main():
    app = QApplication(sys.argv)
    app.setStyle('cleanlooks')
    comm = Communicator()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
Qt Designer生成的其中一个窗口文件具有附加的-w标志:

class Ui_Form(object):
def setupUi(self, Form):
    Form.setObjectName(_fromUtf8("Form"))
    Form.resize(1145, 654)
    ...

class Form(QtGui.QWidget, Ui_Form):
    def __init__(self, parent=None, f=QtCore.Qt.WindowFlags()):
        QtGui.QWidget.__init__(self, parent, f)
        self.setupUi(self)
我想这样做,并将setImage方法添加到mainWindow_分类器中,因为正如我提到的,我不应该修改生成的qt python文件:

    self.mainWindow_classifier.pushButton.clicked.connect(self.setImage)

    def setImage(self):
            # change QLabel in self.mainWindow_images

创建可编辑的PyQt对象的实例。例如,
class Communicator(QMainWindow)
将创建一个可以自由编辑的
QMainWindow
实例创建可以编辑的PyQt对象实例。例如,
classcommunicator(QMainWindow)
将创建一个可以自由编辑的
QMainWindow
实例