added pyside gui

This commit is contained in:
Oliver Hartmann 2023-01-03 21:55:35 +01:00
parent eff36bd9e0
commit d24d53116f
2 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,45 @@
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
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
config.read_config(r'config.yaml')
self.button_is_checked = True
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
# self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
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)'
message = Message.from_text(text)
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.setCentralWidget(self.main_widget)
if __name__ == "__main__":
pass
app = QApplication(sys.argv)
app.setStyle('Material')
window = MainWindow()
window.show()
app.exec()

View File

@ -0,0 +1,79 @@
from PySide6.QtWidgets import QPushButton, QHBoxLayout, QVBoxLayout, QWidget, QLabel
from src.data import Message
from src import sendkeys
class TradeWidget(QWidget):
"""docstring for TradeWidget."""
def __init__(self,
message: Message,
parent):
super(TradeWidget, self).__init__(parent=parent)
self.message = message
self.parent = parent
self.main_layout = QHBoxLayout()
self.setLayout(self.main_layout)
self.label_item = QLabel(message.trade.item)
self.label_price = QLabel(f'{message.trade.amount} {message.trade.currency}')
self.inv_button = QPushButton('inv')
self.trade_button = QPushButton('trade')
self.thank_button = QPushButton('ty')
self.wait_button = QPushButton('wait')
self.del_button = QPushButton('X')
self.inv_button.clicked.connect(self.inv_callback)
self.trade_button.clicked.connect(self.trade_callback)
self.thank_button.clicked.connect(self.thank_callback)
self.wait_button.clicked.connect(self.wait_callback)
self.del_button.clicked.connect(self.delete_callback)
self.main_layout.addWidget(self.label_item)
self.main_layout.addWidget(self.label_price)
self.main_layout.addWidget(self.inv_button)
self.main_layout.addWidget(self.trade_button)
self.main_layout.addWidget(self.thank_button)
self.main_layout.addWidget(self.wait_button)
self.main_layout.addWidget(self.del_button)
def inv_callback(self):
sendkeys.invite(message=self.message)
sendkeys.send_to_format(type='pickup', message=self.message)
def thank_callback(self):
sendkeys.send_to_format(type='ty', message=self.message)
sendkeys.kick(message=self.message)
self.deleteLater()
def trade_callback(self):
sendkeys.trade(message=self.message)
def wait_callback(self):
sendkeys.send_to_format(type='wait', message=self.message)
def delete_callback(self):
self.deleteLater()
self.parent.del_trade(self)
class TradeCollection(QWidget):
"""docstring for TradeCollection."""
def __init__(self, message: Message):
super(TradeCollection, self).__init__()
self.main_layout = QVBoxLayout()
self.setLayout(self.main_layout)
trade = TradeWidget(message, self)
self.main_layout.addWidget(trade)
self.counter = 1
def add_trade(self, message: Message) -> None:
trade = TradeWidget(message, self)
self.main_layout.addWidget(trade)
self.counter += 1
def del_trade(self, trade: TradeWidget):
self.counter -= 1
if self.counter == 0:
self.deleteLater()