def __init__(self): QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) #fix stuff imposible to do in qtdesigner #remove dock titlebar for addressbar w = QWidget() self.ui.addrDockWidget.setTitleBarWidget(w) #tabify some docks self.tabifyDockWidget(self.ui.evDockWidget, self.ui.subDockWidget) self.tabifyDockWidget(self.ui.subDockWidget, self.ui.refDockWidget) # init widgets self.ui.statusBar.hide() self.ui.addrComboBox.insertItem(-1, "opc.tcp://localhost:4841/") self.ui.addrComboBox.insertItem( 1, "opc.tcp://localhost:53530/OPCUA/SimulationServer/") self.ui.addrComboBox.insertItem(1, "opc.tcp://10.0.5.15:49320/") self.attr_model = QStandardItemModel() self.refs_model = QStandardItemModel() self.sub_model = QStandardItemModel() self.ui.attrView.setModel(self.attr_model) self.ui.refView.setModel(self.refs_model) self.ui.subView.setModel(self.sub_model) self.model = MyModel(self) self.model.clear() self.model.error.connect(self.show_error) self.ui.treeView.setModel(self.model) self.ui.treeView.setUniformRowHeights(True) self.ui.treeView.setSelectionBehavior(QAbstractItemView.SelectRows) self.uaclient = UaClient() self.ui.connectButton.clicked.connect(self._connect) self.ui.disconnectButton.clicked.connect(self._disconnect) self.ui.treeView.activated.connect(self._show_attrs_and_refs) self.ui.treeView.clicked.connect(self._show_attrs_and_refs) self.ui.treeView.expanded.connect(self._fit) self.ui.actionSubscribeDataChange.triggered.connect(self._subscribe) self.ui.actionSubscribeEvent.triggered.connect(self._subscribeEvent) self.ui.actionConnect.triggered.connect(self._connect) self.ui.actionDisconnect.triggered.connect(self._disconnect) self.ui.attrRefreshButton.clicked.connect(self.show_attrs) # context menu self.ui.treeView.addAction(self.ui.actionSubscribeDataChange) self.ui.treeView.addAction(self.ui.actionSubscribeEvent) self.ui.treeView.addAction(self.ui.actionUnsubscribe) # handle subscriptions self._subhandler = SubHandler(self.sub_model)
def __init__(self): QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowIcon(QIcon(":/network.svg")) # fix stuff imposible to do in qtdesigner # remove dock titlebar for addressbar w = QWidget() self.ui.addrDockWidget.setTitleBarWidget(w) # tabify some docks self.tabifyDockWidget(self.ui.evDockWidget, self.ui.subDockWidget) self.tabifyDockWidget(self.ui.subDockWidget, self.ui.refDockWidget) # we only show statusbar in case of errors self.ui.statusBar.hide() # load settings, seconds arg is default self.settings = QSettings("FreeOpcUa", "FreeOpcUaClient") self._address_list = self.settings.value("address_list", [ "opc.tcp://localhost:4840", "opc.tcp://localhost:53530/OPCUA/SimulationServer/" ]) self._address_list_max_count = int( self.settings.value("address_list_max_count", 10)) # init widgets for addr in self._address_list: self.ui.addrComboBox.insertItem(-1, addr) self.uaclient = UaClient() self.tree_ui = TreeUI(self, self.uaclient) self.refs_ui = RefsUI(self, self.uaclient) self.attrs_ui = AttrsUI(self, self.uaclient) self.datachange_ui = DataChangeUI(self, self.uaclient) self.event_ui = EventUI(self, self.uaclient) self.resize(int(self.settings.value("main_window_width", 800)), int(self.settings.value("main_window_height", 600))) self.restoreState(self.settings.value("main_window_state", b"")) self.ui.connectButton.clicked.connect(self._connect) self.ui.disconnectButton.clicked.connect(self._disconnect) # self.ui.treeView.expanded.connect(self._fit) self.ui.actionConnect.triggered.connect(self._connect) self.ui.actionDisconnect.triggered.connect(self._disconnect)