closed button on tab

This commit is contained in:
Oliver Hartmann 2023-01-04 00:16:18 +01:00
parent 69a04199c1
commit fdc55ca802
2 changed files with 25 additions and 21 deletions

View File

@ -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 <SETSU?> 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 <SETSU?> 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()

View File

@ -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()