37 lines
1.8 KiB
Python
37 lines
1.8 KiB
Python
from PySide6.QtWidgets import QWidget, QLabel, QVBoxLayout, QTableWidget, QTableWidgetItem, QHeaderView
|
|
from PySide6.QtCore import Qt
|
|
|
|
class OrdersPanel(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.init_ui()
|
|
|
|
def init_ui(self):
|
|
layout = QVBoxLayout(self)
|
|
|
|
# Title
|
|
title_label = QLabel("Orders")
|
|
title_label.setAlignment(Qt.AlignCenter)
|
|
title_label.setStyleSheet("font-size: 24px; font-weight: bold; margin-bottom: 20px;")
|
|
layout.addWidget(title_label)
|
|
|
|
self.orders_table = QTableWidget()
|
|
self.orders_table.setColumnCount(8)
|
|
self.orders_table.setHorizontalHeaderLabels(["Order ID", "Symbol", "Type", "Side", "Quantity", "Price", "Status", "Timestamp"])
|
|
self.orders_table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
|
layout.addWidget(self.orders_table)
|
|
|
|
layout.addStretch(1) # Pushes content to the top
|
|
self.setLayout(layout)
|
|
|
|
def add_order(self, order_id, symbol, order_type, side, quantity, price, status, timestamp):
|
|
row_position = self.orders_table.rowCount()
|
|
self.orders_table.insertRow(row_position)
|
|
self.orders_table.setItem(row_position, 0, QTableWidgetItem(str(order_id)))
|
|
self.orders_table.setItem(row_position, 1, QTableWidgetItem(symbol))
|
|
self.orders_table.setItem(row_position, 2, QTableWidgetItem(order_type))
|
|
self.orders_table.setItem(row_position, 3, QTableWidgetItem(side))
|
|
self.orders_table.setItem(row_position, 4, QTableWidgetItem(str(quantity)))
|
|
self.orders_table.setItem(row_position, 5, QTableWidgetItem(str(price)))
|
|
self.orders_table.setItem(row_position, 6, QTableWidgetItem(status))
|
|
self.orders_table.setItem(row_position, 7, QTableWidgetItem(str(timestamp))) |