more implementations for pyside gui
This commit is contained in:
parent
1f63d814ac
commit
e96ec3eaec
@ -86,6 +86,9 @@ class Trade():
|
||||
def __str__(self) -> str:
|
||||
return f'Trade: {self.nrItems} {self.item} for {self.amount} {self.currency} in {self.tab} ({self.row}/{self.col}) in {self.league} league'
|
||||
|
||||
def unique_item(self) -> str:
|
||||
return f'{self.item}-{self.tab}-{self.row}/{self.col}-{self.league}'
|
||||
|
||||
|
||||
class Message():
|
||||
def __init__(self,
|
||||
|
@ -1,10 +1,10 @@
|
||||
import sys
|
||||
sys.path.append('d:/PoeTrader')
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QTabWidget
|
||||
from PySide6 import QtCore
|
||||
from trade_widget import TradeCollection
|
||||
from src.data import Message
|
||||
from src import config
|
||||
from src.data import Message
|
||||
from trade_widget import TradeCollection
|
||||
from PySide6 import QtCore
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QTabWidget
|
||||
|
||||
|
||||
class MainWindow(QMainWindow):
|
||||
@ -12,27 +12,38 @@ class MainWindow(QMainWindow):
|
||||
super().__init__()
|
||||
|
||||
config.read_config(r'config.yaml')
|
||||
self.button_is_checked = True
|
||||
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
|
||||
# self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
|
||||
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)'
|
||||
message = Message.from_text(text)
|
||||
message2 = Message.from_text(text2)
|
||||
self.setWindowTitle("My App")
|
||||
|
||||
self.main_widget = QTabWidget()
|
||||
|
||||
# self.main_layout = QVBoxLayout()
|
||||
if message:
|
||||
trade_collection = TradeCollection(message)
|
||||
trade_collection.add_trade(message)
|
||||
self.main_widget.addTab(trade_collection, 'Hello')
|
||||
self.main_widget.addTab(TradeCollection(message), 'Hello2')
|
||||
# self.main_layout.addWidget(TradeWidget(message))
|
||||
self.new_trade(message)
|
||||
self.new_trade(message)
|
||||
self.new_trade(message2)
|
||||
|
||||
self.setCentralWidget(self.main_widget)
|
||||
|
||||
def new_trade(self, message: Message):
|
||||
if message.trade:
|
||||
unique_item = message.trade.unique_item()
|
||||
if unique_item in self.trades:
|
||||
self.trades[unique_item].add_trade(message)
|
||||
else:
|
||||
collection = TradeCollection(message)
|
||||
self.trades[message.trade.unique_item()] = collection
|
||||
self.main_widget.addTab(collection, message.trade.item)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
||||
|
@ -15,6 +15,7 @@ class TradeWidget(QWidget):
|
||||
|
||||
self.main_layout = QHBoxLayout()
|
||||
self.setLayout(self.main_layout)
|
||||
self.label_user = QLabel(message.user)
|
||||
self.label_item = QLabel(message.trade.item)
|
||||
self.label_price = QLabel(f'{message.trade.amount} {message.trade.currency}')
|
||||
|
||||
@ -30,6 +31,7 @@ class TradeWidget(QWidget):
|
||||
self.wait_button.clicked.connect(self.wait_callback)
|
||||
self.del_button.clicked.connect(self.delete_callback)
|
||||
|
||||
self.main_layout.addWidget(self.label_user)
|
||||
self.main_layout.addWidget(self.label_item)
|
||||
self.main_layout.addWidget(self.label_price)
|
||||
self.main_layout.addWidget(self.inv_button)
|
||||
@ -45,7 +47,7 @@ class TradeWidget(QWidget):
|
||||
def thank_callback(self):
|
||||
sendkeys.send_to_format(type='ty', message=self.message)
|
||||
sendkeys.kick(message=self.message)
|
||||
self.deleteLater()
|
||||
self.delete_callback()
|
||||
|
||||
def trade_callback(self):
|
||||
sendkeys.trade(message=self.message)
|
||||
@ -55,7 +57,7 @@ class TradeWidget(QWidget):
|
||||
|
||||
def delete_callback(self):
|
||||
self.deleteLater()
|
||||
self.parent.del_trade(self)
|
||||
self.parent.del_trade(self.message)
|
||||
|
||||
|
||||
class TradeCollection(QWidget):
|
||||
@ -66,14 +68,16 @@ class TradeCollection(QWidget):
|
||||
self.setLayout(self.main_layout)
|
||||
trade = TradeWidget(message, self)
|
||||
self.main_layout.addWidget(trade)
|
||||
self.counter = 1
|
||||
self.trades = {message.trade.__hash__: trade}
|
||||
|
||||
def add_trade(self, message: Message) -> None:
|
||||
if message.trade.__hash__ in self.trades:
|
||||
return
|
||||
trade = TradeWidget(message, self)
|
||||
self.main_layout.addWidget(trade)
|
||||
self.counter += 1
|
||||
self.trades[message.trade.__hash__] = trade
|
||||
|
||||
def del_trade(self, trade: TradeWidget):
|
||||
self.counter -= 1
|
||||
if self.counter == 0:
|
||||
def del_trade(self, message: Message):
|
||||
del self.trades[message.trade.__hash__]
|
||||
if not self.trades:
|
||||
self.deleteLater()
|
||||
|
Loading…
x
Reference in New Issue
Block a user