class Me(QMainWindow): @asyncio.coroutine def request_handler(msg): print("[Request on '{} {}']: {}".format(msg.subject, msg.reply, msg.data.decode())) yield from msg.nc.publish(msg.reply, b'OK') @asyncio.coroutine def master(self): yield from self.nc.subscribe("help", "workers", cb=self.request_handler) def __init__(self): #self.nc = NATS() #self.nc.connect() ''' try: yield from nc.connect() except: pass ''' super().__init__() #self.nc = NATS() #self.nc.connect() #self.nc.subscribe("help", "workers", cb=self.request_handler) self.ui = loadUi('ms_main.ui', self) self.model = Model(self) self.ui.lv_news.setModel(self.model) #self.setCentralWidget(ui) self.ui.lv_news.setItemsExpandable(False) self.ui.lv_news.setIndentation(0) self.ui.lv_news.setSelectionMode(QAbstractItemView.ExtendedSelection) toolBar = QToolBar() self.addToolBar(toolBar) delButton = QPushButton('削除') delButton.clicked.connect(self.removeItems) toolBar.addWidget(delButton) addButton = QPushButton('追加') addButton.clicked.connect(self.rcv_nats) toolBar.addWidget(addButton) addButton = QPushButton('publish') addButton.clicked.connect(self.nats_pub) toolBar.addWidget(addButton) self.addToolBar(toolBar) #loop = asyncio.get_event_loop() #component = Component(nc, loop) #thr = Thread(target=another_thread, args=(component,)) #thr.start() #loop.run_forever() self.c = Listener(["nats://localhost:4222"]) tt = TestThread(ccc=self.c) tt.start() def nats_pub(self): print('publishing') #self.c.publish('discover', 'hello nats') self.c.sync_publish("some message ") def request_handler(msg): print("[Request on '{} {}']: {}".format(msg.subject, msg.reply, msg.data.decode())) msg.self.nc.publish(msg.reply, b'OK') def rcv_nats(self): print('nats') #response = yield from self.nc.timed_request("foo", b'help me', 0.050) print('Hi') #print(response) #print("Received response: {message}".format(message=response.data.decode())) self.model.addRow('999', 'added item', '0.1', '0.2', '0.3') #msg = self.nc.timed_request("help", b'help please', 0.500) #print("[Response]: {}".format(msg.data)) #yield from self.nc.publish("help", b'hello') def selectedRows(self): rows = [] for index in self.ui.lv_news.selectedIndexes(): if index.column() == 0: rows.append(index.row()) return rows def removeItems(self): self.model.removeRows(self.selectedRows())