diff --git a/src/pyside6/gui_pyside6.py b/src/pyside6/gui_pyside6.py index aec6a57..19d1ad2 100644 --- a/src/pyside6/gui_pyside6.py +++ b/src/pyside6/gui_pyside6.py @@ -11,31 +11,16 @@ class MainWindow(QMainWindow): def __init__(self): super().__init__() - conf = config.read_config(r'config.yaml') - compile_regex(conf) self.setWindowFlag(QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.trades = {} - text = '2021/03/08 23:24:52 17931875 bb3 [INFO Client 1492] @From Sinusal: Hi, I would like to buy your level 21 23% Vaal Impurity of Lightning ' \ - 'listed for 18 chaos in Ritual (stash tab "$"; position: left 22, top 5)' - text2 = '2021/03/08 23:24:52 17931875 bb3 [INFO Client 1492] @From NiceGuy: Hi, I would like to buy your level 21 23% Vaal Impurity of Lightning ' \ - 'listed for 18 chaos in Ritual (stash tab "$"; position: left 22, top 5)' - text3 = '2023/01/02 23:57:26 15123437 cffb0734 [INFO Client 16668] @From LASTTRYPOEenjoyer: Hi, I would like to buy your Watcher\'s Eye, Prismatic Jewel listed for 2.5 divine in Sanctum (stash tab "$2"; position: left 8, top 7)' - message = Message.from_text(text) - message2 = Message.from_text(text2) - message3 = Message.from_text(text3) self.setWindowTitle("My App") - self.main_widget = QTabWidget() - - # self.main_layout = QVBoxLayout() - self.new_trade(message) - self.new_trade(message) - self.new_trade(message2) - self.new_trade(message3) - + self.main_widget = QTabWidget(self) + self.main_widget.setTabsClosable(True) + self.main_widget.tabCloseRequested.connect(self.del_tab) self.setCentralWidget(self.main_widget) def new_trade(self, message: Message): @@ -45,8 +30,9 @@ class MainWindow(QMainWindow): self.trades[unique_item].add_trade(message) else: collection = TradeCollection(message, self) + index = self.main_widget.addTab(collection, message.trade.item) + collection.index = index self.trades[message.trade.unique_item()] = collection - self.main_widget.addTab(collection, message.trade.item) self.show() def del_collection(self, unique_item: str): @@ -55,11 +41,28 @@ class MainWindow(QMainWindow): self.hide() + def del_tab(self, index: int): + self.trades[self.main_widget.widget(index).unique_item].deleteLater() + del self.trades[self.main_widget.widget(index).unique_item] + if __name__ == "__main__": - pass + conf = config.read_config(r'config.yaml') + compile_regex(conf) + text = '2021/03/08 23:24:52 17931875 bb3 [INFO Client 1492] @From Sinusal: Hi, I would like to buy your level 21 23% Vaal Impurity of Lightning ' \ + 'listed for 18 chaos in Ritual (stash tab "$"; position: left 22, top 5)' + text2 = '2021/03/08 23:24:52 17931875 bb3 [INFO Client 1492] @From NiceGuy: Hi, I would like to buy your level 21 23% Vaal Impurity of Lightning ' \ + 'listed for 18 chaos in Ritual (stash tab "$"; position: left 22, top 5)' + text3 = '2023/01/02 23:57:26 15123437 cffb0734 [INFO Client 16668] @From LASTTRYPOEenjoyer: Hi, I would like to buy your Watcher\'s Eye, Prismatic Jewel listed for 2.5 divine in Sanctum (stash tab "$2"; position: left 8, top 7)' + message = Message.from_text(text) + message2 = Message.from_text(text2) + message3 = Message.from_text(text3) app = QApplication(sys.argv) app.setStyle('Material') window = MainWindow() + window.new_trade(message) + window.new_trade(message) + window.new_trade(message2) + window.new_trade(message3) app.exec() diff --git a/src/pyside6/trade_widget.py b/src/pyside6/trade_widget.py index 93cc66f..44b696e 100644 --- a/src/pyside6/trade_widget.py +++ b/src/pyside6/trade_widget.py @@ -68,6 +68,7 @@ class TradeCollection(QWidget): parent): super(TradeCollection, self).__init__() self.parent = parent + self.unique_item = message.trade.unique_item() self.main_layout = QVBoxLayout() self.setLayout(self.main_layout) trade = TradeWidget(message, self) @@ -84,5 +85,5 @@ class TradeCollection(QWidget): def del_trade(self, message: Message): del self.trades[message.trade.__hash__] if not self.trades: - self.parent.del_collection(message.trade.unique_item()) + self.parent.del_collection(self.unique_item) self.deleteLater()