def __init__(self): # call super init super().__init__(sys.argv) # connect exit method self.aboutToQuit.connect(self.exit_app) # list for all loaded maps self.maps = MapList() # dictionary for all windows self.windows = { "aboutWindow": AboutWindow(), "backgroundWindow": BackgroundWindow(), "fittingWindow": FittingWindow(), "mapWindow": MapWindow(), "pixelInformationWindow": PixelInformationWindow(), "spectrumWindow": SpectrumWindow() } # thread for live plotting self._live_plotting_thread = None # connect to map list signals self.map_added.connect(self.windows['backgroundWindow'].add_widget) self.map_added.connect(self.windows['fittingWindow'].add_widget) self.map_added.connect( self.windows['pixelInformationWindow'].add_widget) self.map_added.connect(self.windows['spectrumWindow'].add_widget) self.map_removed.connect( self.windows['backgroundWindow'].remove_widget) self.map_removed.connect(self.windows['fittingWindow'].remove_widget) self.map_removed.connect( self.windows['pixelInformationWindow'].remove_widget) self.map_removed.connect(self.windows['spectrumWindow'].remove_widget) self.selected_map_changed.connect( self.windows['backgroundWindow'].change_widget) self.selected_map_changed.connect( self.windows['fittingWindow'].change_widget) self.selected_map_changed.connect( self.windows['pixelInformationWindow'].change_widget) self.selected_map_changed.connect( self.windows['spectrumWindow'].change_widget) # connect to map signals self.fit_changed.connect(self.windows['mapWindow'].update_data) self.fit_changed.connect( self.windows['mapWindow'].update_data_selection_combo_box) self.fit_changed.connect( self.windows['pixelInformationWindow'].update_data) self.fit_changed.connect(self.windows['spectrumWindow'].update_data) self.focus_changed.connect(self.windows['mapWindow'].update_crosshair) self.focus_changed.connect( self.windows['pixelInformationWindow'].update_data) self.focus_changed.connect(self.windows['spectrumWindow'].update_data) self.geometry_changed.connect(self.windows['mapWindow'].update_data) self.geometry_changed.connect( self.windows['mapWindow'].update_crosshair) self.interval_changed.connect(self.windows['mapWindow'].update_data) self.interval_changed.connect( self.windows['pixelInformationWindow'].update_data) self.interval_changed.connect( self.windows['spectrumWindow'].update_data) self.selected_data_changed.connect( self.windows['mapWindow'].update_data) self.spectrum_changed.connect(self.windows['mapWindow'].update_data) self.spectrum_changed.connect( self.windows['pixelInformationWindow'].update_data) self.spectrum_changed.connect( self.windows['spectrumWindow'].update_data) # show the map window self.windows['mapWindow'].show()
def __init__(self): super().__init__() self.setWindowIcon(QtGui.QIcon(Res.mainWindowIcon)) self.setWindowTitle("Demo") self.setFixedWidth(640) self.setFixedHeight(480) self.taskWindow = TaskWindow() self.mapWindow = MapWindow() username = QtWidgets.QLineEdit("admin") password = QtWidgets.QLineEdit("123123") link = QtWidgets.QPushButton("连接") layout1 = QtWidgets.QHBoxLayout() layout1.addWidget(QtWidgets.QLabel("用户名")) layout1.addWidget(username) layout1.addWidget(QtWidgets.QLabel("密码")) layout1.addWidget(password) layout1.addWidget(link) password.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit) link.clicked.connect(self.link_slot) self.username = username self.password = password self.link = link device = QtWidgets.QComboBox() status = QtWidgets.QLabel("无设备") status.setStyleSheet("color:gray") power = QtWidgets.QLabel("无设备") power.setStyleSheet("color:gray") self.device = device self.status = status self.power = power layout2 = QtWidgets.QHBoxLayout() layout2.addWidget(QtWidgets.QLabel("设备"), 1) layout2.addWidget(device, 8) layout2.addWidget(QtWidgets.QLabel("状态"), 1) layout2.addWidget(status, 1) layout2.addWidget(QtWidgets.QLabel("电量"), 1) layout2.addWidget(power, 1) add = QtWidgets.QPushButton("添加") edit = QtWidgets.QPushButton("修改") delete = QtWidgets.QPushButton("删除") upload = QtWidgets.QPushButton("上传") mmap = QtWidgets.QPushButton("地图") add.clicked.connect(self.add_slot) edit.clicked.connect(self.edit_slot) delete.clicked.connect(self.delete_slot) mmap.clicked.connect(self.map_slot) upload.clicked.connect(self.upload_slot) # add.setEnabled(False) # edit.setEnabled(False) # delete.setEnabled(False) upload.setEnabled(False) mmap.setEnabled(False) self.add = add self.edit = edit self.delete = delete self.upload = upload self.mmap = mmap layout3 = QtWidgets.QVBoxLayout() layout3.addWidget(add) layout3.addWidget(edit) layout3.addWidget(delete) layout3.addStretch() layout3.addWidget(upload) layout3.addStretch() layout3.addWidget(mmap) tasks = QtWidgets.QListWidget() tasks.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) layout4 = QtWidgets.QHBoxLayout() layout4.addWidget(tasks) layout4.addLayout(layout3) self.tasks = tasks mainlayout = QtWidgets.QVBoxLayout() mainlayout.addLayout(layout1) mainlayout.addLayout(layout2) mainlayout.addLayout(layout4) self.setLayout(mainlayout)