mekasu0124

Untitled

Jan 27th, 2024
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.72 KB | None | 0 0
  1. from services.database import DatabaseEngine
  2.  
  3. from PySide6.QtCore import Qt
  4. from PySide6.QtWidgets import (
  5.     QMainWindow,
  6.     QTableView,
  7.     QPushButton,
  8.     QVBoxLayout
  9. )
  10. from PySide6.QtGui import (
  11.     QStandardItem,
  12.     QStandardItemModel,
  13.     QBrush
  14. )
  15.  
  16. from styles.styles import (
  17.     get_font,
  18.     get_font_two,
  19.     label_style_two,
  20.     button_style
  21. )
  22.  
  23. class PreviousGames(QMainWindow):
  24.     def __init__(self, window_manager, logged_in_user):
  25.         super(PreviousGames, self).__init__()
  26.  
  27.         self.window_manager = window_manager
  28.         self.logged_in_user = logged_in_user
  29.  
  30.         self.db_engine = DatabaseEngine()
  31.  
  32.         self.font = get_font()
  33.         self.font_two = get_font_two()
  34.         self.label_style = label_style_two()
  35.         self.button_style = button_style()
  36.  
  37.         self.setStyleSheet(
  38.             """
  39.            QWidget {
  40.                background-color: #D1258A;
  41.            }
  42.  
  43.            QTableView {
  44.                border: 2px solid #440028;
  45.                border-radius: 10px;
  46.                color: #651142;
  47.                background-color: #D1258A;
  48.            }
  49.  
  50.            QHeaderView::section {
  51.                background-color: #D1258A;
  52.                border: 1px solid #440028;
  53.            }
  54.            """
  55.         )
  56.  
  57.         self.layout = QVBoxLayout()
  58.         self.setLayout(self.layout)
  59.  
  60.         self.UiComponents()
  61.         self.showMaximized()
  62.  
  63.     def UiComponents(self):
  64.         user_games = self.db_engine.get_user_games(self.logged_in_user)
  65.  
  66.         self.table = QTableView(self)
  67.         self.model = QStandardItemModel()
  68.         self.table.setModel(self.model)
  69.  
  70.         column_names = ["Game ID", "Username", "Stars", "Game Played", "Correct", "Wrong", "Total"]
  71.  
  72.         self.model.setHorizontalHeaderLabels(column_names)
  73.  
  74.         for row in range(len(user_games)):
  75.             for column in range(len(column_names)):
  76.                 item = QStandardItem(str(user_games[row][column]))
  77.                 item.setBackground(QBrush("#D1258A"))
  78.                 item.setForeground(QBrush("#651142"))
  79.                 item.setFont(self.font_two)
  80.                 item.setCheckable(False)
  81.                 item.setEditable(False)
  82.                 item.setSelectable(False)
  83.                 item.setTextAlignment(Qt.AlignCenter)
  84.  
  85.                 self.model.setItem(row, column, item)
  86.  
  87.         self.button = QPushButton("Back", self)
  88.         self.button.setStyleSheet(self.button_style)
  89.         self.button.setFont(self.font)
  90.         self.button.clicked.connect(self.back_button)
  91.  
  92.         self.layout.addWidget(self.table, 1)
  93.         self.layout.addWidget(self.button, 0)
  94.  
  95.     def back_button(self):
  96.         self.window_manager.close_window()
Advertisement
Add Comment
Please, Sign In to add comment