wip: refacto qss, new assets

This commit is contained in:
2026-03-06 11:24:45 +01:00
parent 42768aa78a
commit a437de91df
11 changed files with 10793 additions and 132 deletions

View File

@@ -9,6 +9,7 @@
"editorconfig.editorconfig",
"njpwerner.autodocstring",
"redhat.vscode-yaml",
"tamasfe.even-better-toml"
"tamasfe.even-better-toml",
"theqtcompany.qt",
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

23
assets/computer-tv.svg Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 501.333 501.333" xml:space="preserve">
<path style="fill:#637888;" d="M458.667,241.067c0,11.733-8.533,21.333-20.267,21.333H62.933c-10.667,0-20.267-9.6-20.267-21.333
V21.333C42.667,9.6,51.2,0,62.933,0H438.4c10.667,0,20.267,9.6,20.267,21.333L458.667,241.067L458.667,241.067z"/>
<path style="fill:#53C2EF;" d="M62.933,249.6c-5.333,0-8.533-4.267-8.533-9.6V21.333c0-5.333,4.267-9.6,8.533-9.6H438.4
c5.333,0,8.533,4.267,8.533,9.6v219.733c0,5.333-4.267,9.6-8.533,9.6H62.933V249.6z"/>
<rect x="166.4" y="262.4" style="fill:#3A5569;" width="168.533" height="61.867"/>
<path style="fill:#637888;" d="M363.733,317.867H137.6c-18.133,0-34.133,10.667-34.133,23.467h294.4
C397.867,328.533,382.933,317.867,363.733,317.867z"/>
<rect y="342.4" style="fill:#3A5569;" width="501.333" height="158.933"/>
<g>
<rect x="268.8" y="375.467" style="fill:#637888;" width="194.133" height="45.867"/>
<rect x="28.8" y="364.8" style="fill:#637888;" width="11.733" height="113.067"/>
<rect x="60.8" y="364.8" style="fill:#637888;" width="11.733" height="113.067"/>
<rect x="91.733" y="364.8" style="fill:#637888;" width="11.733" height="113.067"/>
<rect x="122.667" y="364.8" style="fill:#637888;" width="11.733" height="113.067"/>
<rect x="153.6" y="364.8" style="fill:#637888;" width="11.733" height="113.067"/>
</g>
<circle style="fill:#F16D6E;" cx="225.067" cy="400" r="11.733"/>
<circle style="fill:#60C3AB;" cx="225.067" cy="443.733" r="11.733"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

14
assets/padlock-lock.svg Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512.001 512.001" xml:space="preserve">
<path style="fill:#FF9E16;" d="M459.897,231.945c0-16.19-13.246-29.436-29.436-29.436H81.54c-16.19,0-29.436,13.247-29.436,29.436
v250.619C52.104,498.754,65.349,512,81.54,512H430.46c16.189,0,29.436-13.246,29.436-29.436V231.945H459.897z"/>
<path style="fill:#0071CE;" d="M52.104,458.106v24.459c0,16.189,13.245,29.436,29.436,29.436H430.46
c16.189,0,29.436-13.246,29.436-29.436v-24.459H52.104z"/>
<path style="fill:#0055B8;" d="M284.42,344.612c14.456-9.34,24.033-25.585,24.033-44.077c0-28.969-23.484-52.453-52.453-52.453
s-52.453,23.484-52.453,52.453c0,18.491,9.578,34.736,24.034,44.077l-9.012,61.623c-0.809,5.538,3.107,10.069,8.703,10.069h57.457
c5.597,0,9.513-4.531,8.703-10.069L284.42,344.612z"/>
<path style="fill:#333E48;" d="M384.933,202.51h-52.985v-73.576c0-41.878-34.069-75.948-75.948-75.948s-75.949,34.069-75.949,75.948
v73.576h-52.985v-73.576C127.067,57.839,184.907,0,256.001,0s128.933,57.839,128.933,128.933L384.933,202.51L384.933,202.51z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

30
assets/sound-speaker.svg Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512 512" xml:space="preserve">
<path style="fill:#4A5058;" d="M144.24,167.708H29.247c-11.636,0-21.069,9.433-21.069,21.067v134.448
c0,11.636,9.433,21.067,21.069,21.067H144.24V167.708z"/>
<rect x="62.112" y="167.704" style="fill:#E45D4C;" width="28.195" height="176.582"/>
<path style="fill:#7E858B;" d="M297.578,62.32L144.24,167.708v176.583L297.578,449.68c7.783,5.349,18.374-0.222,18.374-9.666V71.986
C315.952,62.542,305.361,56.97,297.578,62.32z"/>
<path style="opacity:0.2;enable-background:new ;" d="M311.097,436.161L162.493,334.026c-3.083-2.119-6.738-3.253-10.479-3.253
H42.765c-11.636,0-21.067-9.433-21.067-21.067V175.258c0-2.274,0.371-4.46,1.037-6.512c-8.446,2.745-14.555,10.669-14.555,20.03
v134.448c0,11.636,9.433,21.067,21.069,21.067h114.992L297.579,449.68c7.783,5.349,18.374-0.222,18.374-9.666v-1.91
C314.293,437.846,312.64,437.222,311.097,436.161z"/>
<path d="M429.806,79.937c-3.457-2.908-8.618-2.46-11.523,0.999c-2.906,3.458-2.459,8.617,0.999,11.523
c48.528,40.785,76.361,100.396,76.361,163.546c0,63.149-27.833,122.76-76.361,163.545c-3.458,2.907-3.905,8.066-0.999,11.523
c1.617,1.926,3.933,2.917,6.266,2.917c1.857,0,3.726-0.629,5.258-1.918C482.041,388.171,512,323.996,512,256.004
C512,188.012,482.041,123.837,429.806,79.937z M393.581,123.107c-3.457-2.906-8.617-2.462-11.523,0.999
c-2.906,3.458-2.459,8.617,0.999,11.523c35.719,30.021,56.205,73.897,56.205,120.375s-20.486,90.353-56.205,120.374
c-3.458,2.906-3.905,8.066-0.999,11.523c1.617,1.926,3.934,2.917,6.266,2.917c1.857,0,3.726-0.629,5.258-1.918
c39.427-33.137,62.04-81.576,62.04-132.896S433.008,156.246,393.581,123.107z M313.492,54.367
c-6.567-3.454-14.438-2.987-20.547,1.212L141.7,159.529H29.247C13.12,159.528,0,172.649,0,188.776v134.448
c0,16.127,13.12,29.247,29.247,29.247H141.7l151.246,103.95c3.39,2.331,7.321,3.511,11.272,3.511c3.17,0,6.353-0.76,9.276-2.298
c6.562-3.453,10.639-10.205,10.639-17.619V71.986C324.131,64.571,320.055,57.82,313.492,54.367z M136.061,336.113H29.247
c-7.106,0-12.888-5.781-12.888-12.888V188.776c0-7.108,5.782-12.888,12.888-12.888H136.06v160.225H136.061z M307.772,440.014
c0,1.865-1.189,2.769-1.897,3.142c-0.709,0.371-2.126,0.841-3.663-0.216L152.42,339.989V172.011L302.212,69.06
c1.539-1.057,2.956-0.586,3.663-0.216c0.709,0.373,1.897,1.277,1.897,3.142V440.014z M357.385,166.238
c-3.461-2.904-8.619-2.455-11.525,1.002c-2.905,3.459-2.456,8.619,1.002,11.525c22.889,19.225,36.017,47.379,36.017,77.24
s-13.128,58.013-36.017,77.239c-3.458,2.905-3.908,8.066-1.002,11.525c1.618,1.926,3.935,2.918,6.268,2.918
c1.856,0,3.723-0.628,5.257-1.916c26.599-22.342,41.854-55.06,41.854-89.766C399.239,221.299,383.984,188.581,357.385,166.238z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,5 +1,10 @@
<RCC>
<qresource prefix="/">
<file>assets/sound-speaker.svg</file>
<file>assets/computer-tv.svg</file>
<file>assets/padlock-lock.svg</file>
<file>assets/logo.png</file>
<file>assets/Logo_Discord_2015.png</file>
<file>assets/system-shutdown.png</file>
<file>assets/Avocado-Cake-Demo.otf</file>
<file>assets/background.png</file>

View File

@@ -1,13 +1,12 @@
import sys
import os
from PyQt6 import QtGui, QtWidgets
from PyQt6 import uic
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QFontDatabase, QFont, QColor
from PyQt6.QtGui import QFontDatabase, QFont
from PyQt6.QtWidgets import QApplication, QMainWindow
# Compile resources.qrc into resources_rc.py
# rcc -g python resources.qrc -o resources_rc.py
# rcc -g python .\resources.qrc -o .\src\resources_rc.py
import resources as resources # This is generated from the .qrc file # noqa: F401
@@ -16,7 +15,7 @@ if sys.platform.startswith('linux'):
os.environ["QT_QPA_PLATFORM"] = "xcb"
if sys.platform=='windows' or sys.platform=="win32":
from win11toast import toast, notify # type: ignore
from win11toast import toast # type: ignore
# Remove this into final release
from fake_patch_notes import patch_note
@@ -49,15 +48,11 @@ class MainWindow(QMainWindow):
# Track mouse position for dragging
self._drag_pos = None
# Load font family from resource
font_family = load_custom_font()
uic.loadUi(f"{os.path.dirname(CURRENT)}/ui/mainwindow.ui", self)
# Adjust UI
self.maintitle_label.setFont(QFont(font_family, 38))
self.subtitle_label.setStyleSheet("color: rgb(163, 177, 198)")
#self.horizontalSlider.setStyle(ThinAddPageLineStyle(app.style(), QColor("#2196F3")))
# Fixe some qss properties not taken into account
self.subtitle_label.setStyleSheet("color: rgb(163, 177, 198);")
self.queue_position.setStyleSheet("color: rgb(17, 248, 183);")
if NO_STAFF :
self.staff_btn.hide()
@@ -69,7 +64,6 @@ class MainWindow(QMainWindow):
# Example: objectName = "close_btn"
self.close_btn.clicked.connect(self.close_link)
self.minimize_btn.clicked.connect(self.minimize_link)
self.connexion_btn.clicked.connect(self.connexion_btn_link)
def close_link(self):
@@ -113,13 +107,14 @@ if __name__ == "__main__":
with open(f"{os.path.dirname(CURRENT)}/styles/styles.qss", 'r') as f:
style = f.read()
# Set the stylesheet of the application
app.setStyleSheet(style)
# Load and set the global font
custom_font = QFont(load_custom_font(), 16)
if custom_font:
app.setFont(custom_font)
# Set the stylesheet of the application
app.setStyleSheet(style)
window = MainWindow()
window.show()
sys.exit(app.exec())

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,27 @@
QPushButton#connexion_btn {
border-radius: 15px;
background-color: rgb(255, 120, 0);
#main_container {
border-radius: 30px;
background-image: url(:/assets/background.png);
background-repeat: no-repeat;
background-position: center;
}
QLabel#maintitle_label {
font-size: 38px;
}
QLabel#subtitle_label {
color: rgb(163, 177, 198);
}
QLabel#queue_position {
font-size: 36px;
color: rgb(17, 248, 183);
}
QPushButton#connexion_btn {
border-radius: 15px;
background-color: rgb(255, 120, 0);
}
QPushButton#connexion_btn:hover {
background: #ffad66;
@@ -10,89 +29,83 @@ QPushButton#connexion_btn:hover {
QPushButton#discord_btn,
QPushButton#intranet_btn
{
border-radius: 15px;
background-color: #203a43;
{
border-radius: 15px;
background-color: rgb(32, 58, 67);
}
QPushButton#discord_btn:hover,
QPushButton#intranet_btn:hover {
background: rgb(68, 124, 143);
}
QPushButton#volume_btn {
border-radius: 15px;
background-color: rgb(255, 120, 0);
}
QPushButton#close_btn {
border : 0;
background: transparent;
border : 0;
background: transparent;
}
QPushButton#minimize_btn {
background-color: transparent;
border: none;
border-bottom: 5px solid white;
color: white;
font-size: 18px;
padding: 0px;
padding-top: 0
border: none;
border-bottom: 5px solid white;
color: white;
font-size: 18px;
padding: 0px;
padding-top: 0
}
QFrame#info_frame{
background: qlineargradient(
x1:0, y1:0,
x2:0, y2:1,
stop:0 rgba(255,255,255,30),
stop:1 rgba(255,255,255,30)
);
border-radius: 20px;
border: 1px solid rgba(255,255,255,140);
}
QTextEdit#info_text {
background-color: transparent;
border: none;
}
/*
QSlider::groove:horizontal {
border: 1px solid #262626;
height: 10px;
}
QSlider::handle:horizontal {
background: rgb(236, 127, 43);
border: 1px solid rgb(236, 127, 43);
width: 23px;
border-radius: 3px;
height: 100px;
margin: -24px -12px;
}
QSlider::sub-page:horizontal{
border:0px;
border-radius:6px;
background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #12b9ff, stop: 1.0 #015eea);
}
QSlider::add-page:horizontal{
border:0px;
border-radius:6px;
background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 rgb(146, 149, 150), stop: 1.0 rgb(253, 254, 254));
}
*/
QSlider::groove:horizontal {
border: 1px inset #1C1C1C;
height: 6px;
border-radius: 3px;
background-color: transparent;
border: none;
}
QSlider::groove:horizontal {
border: 1px inset #1C1C1C;
height: 6px;
border-radius: 3px;
border: 1px inset #1C1C1C;
height: 6px;
border-radius: 3px;
}
QSlider::groove:horizontal {
border: 1px inset #1C1C1C;
height: 6px;
border-radius: 3px;
}
QSlider::sub-page:horizontal {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #12b9ff, stop: 1.0 #015eea);
border: 1px inset #1C1C1C;
border-radius: 3px;
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #12b9ff, stop: 1.0 #015eea);
border: 1px inset #1C1C1C;
border-radius: 3px;
}
/* groove background on right of slider */
QSlider::add-page:horizontal {
background: #7D7D7D;
border: 1px outset #1C1C1C;
border-radius: 3px;
background: #7D7D7D;
border: 1px outset #1C1C1C;
border-radius: 3px;
}
QSlider::handle:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 rgb(241, 160, 61), stop:1 rgb(233, 111, 29));
border: 1px solid rgb(213, 125, 2);
width: 12px;
height: 10px;
margin-top: -8px;
margin-bottom: -8px;
border-radius: 2px;
}
background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 rgb(78, 195, 146), stop:1 rgb(57, 144, 107));
border: 1px solid rgb(78, 195, 146);
width: 12px;
height: 10px;
margin-top: -8px;
margin-bottom: -8px;
border-radius: 2px;
}

View File

@@ -57,14 +57,6 @@
<height>703</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#main_container {
border-radius: 30px;
background-image: url(:/assets/background.png);
background-repeat: no-repeat;
background-position: center;
}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
@@ -366,30 +358,18 @@
<property name="text">
<string>Position en file d'attente: </string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLCDNumber" name="lcdNumber">
<property name="maximumSize">
<size>
<width>70</width>
<height>50</height>
</size>
<widget class="QLabel" name="queue_position">
<property name="text">
<string>20</string>
</property>
<property name="layoutDirection">
<enum>Qt::LayoutDirection::RightToLeft</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Sunken</enum>
</property>
<property name="smallDecimalPoint">
<bool>false</bool>
</property>
<property name="digitCount">
<number>2</number>
</property>
<property name="value" stdset="0">
<double>20.000000000000000</double>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
@@ -465,12 +445,22 @@
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<widget class="QPushButton" name="volume_btn">
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::AudioVolumeHigh"/>
<iconset resource="../resources.qrc">
<normaloff>:/assets/sound-speaker.svg</normaloff>:/assets/sound-speaker.svg</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
@@ -577,7 +567,7 @@
<item alignment="Qt::AlignmentFlag::AlignHCenter">
<widget class="QLabel" name="maintitle_label">
<property name="text">
<string>la taniere</string>
<string>LA TANIÈRE</string>
</property>
</widget>
</item>
@@ -606,7 +596,7 @@
</size>
</property>
<property name="text">
<string>un espace pour se retrouver</string>
<string>Un espace pour se retrouver</string>
</property>
<property name="textFormat">
<enum>Qt::TextFormat::AutoText</enum>
@@ -682,7 +672,17 @@
<string notr="true"/>
</property>
<property name="text">
<string>connexion</string>
<string> Connexion</string>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/assets/padlock-lock.svg</normaloff>:/assets/padlock-lock.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
@@ -754,7 +754,17 @@
</size>
</property>
<property name="text">
<string>discord</string>
<string> Discord</string>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/assets/Logo_Discord_2015.png</normaloff>:/assets/Logo_Discord_2015.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
@@ -780,7 +790,17 @@
</size>
</property>
<property name="text">
<string>intranet</string>
<string> Intranet</string>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/assets/computer-tv.svg</normaloff>:/assets/computer-tv.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
@@ -839,16 +859,7 @@
</size>
</property>
<property name="styleSheet">
<string notr="true">QFrame#info_frame{
background: qlineargradient(
x1:0, y1:0,
x2:0, y2:1,
stop:0 rgba(255,255,255,30),
stop:1 rgba(255,255,255,30)
);
border-radius: 20px;
border: 1px solid rgba(255,255,255,140);
}</string>
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::Shape::StyledPanel</enum>

400
ui/mainwindow_ui.py Normal file
View File

@@ -0,0 +1,400 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
## Created by: Qt User Interface Compiler version 6.10.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QHBoxLayout, QLabel,
QMainWindow, QPushButton, QSizePolicy, QSlider,
QSpacerItem, QTextEdit, QVBoxLayout, QWidget)
import resources_rc
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.setWindowModality(Qt.WindowModality.ApplicationModal)
MainWindow.resize(1199, 703)
sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QSize(1199, 703))
MainWindow.setMaximumSize(QSize(1199, 703))
MainWindow.setContextMenuPolicy(Qt.ContextMenuPolicy.NoContextMenu)
icon = QIcon()
icon.addFile(u":/assets/Icone.ico", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
MainWindow.setWindowIcon(icon)
MainWindow.setStyleSheet(u"color: rgb(255, 255, 255);")
self.main_container = QWidget(MainWindow)
self.main_container.setObjectName(u"main_container")
self.main_container.setMinimumSize(QSize(1199, 703))
self.main_container.setMaximumSize(QSize(1199, 703))
self.verticalLayout = QVBoxLayout(self.main_container)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.title_bar = QFrame(self.main_container)
self.title_bar.setObjectName(u"title_bar")
self.title_bar.setMinimumSize(QSize(1199, 50))
self.title_bar.setMaximumSize(QSize(1199, 50))
self.title_bar.setFrameShape(QFrame.Shape.NoFrame)
self.title_bar.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout = QHBoxLayout(self.title_bar)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.horizontalLayout.setContentsMargins(0, 9, 0, 0)
self.horizontalSpacer = QSpacerItem(1006, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
self.minimize_btn = QPushButton(self.title_bar)
self.minimize_btn.setObjectName(u"minimize_btn")
self.minimize_btn.setMinimumSize(QSize(0, 0))
self.minimize_btn.setMaximumSize(QSize(25, 25))
self.minimize_btn.setStyleSheet(u"")
self.minimize_btn.setIconSize(QSize(32, 32))
self.horizontalLayout.addWidget(self.minimize_btn)
self.horizontalSpacer_2 = QSpacerItem(20, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer_2)
self.close_btn = QPushButton(self.title_bar)
self.close_btn.setObjectName(u"close_btn")
self.close_btn.setMaximumSize(QSize(42, 42))
self.close_btn.setStyleSheet(u"")
icon1 = QIcon()
icon1.addFile(u":/assets/system-shutdown.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.close_btn.setIcon(icon1)
self.close_btn.setIconSize(QSize(32, 32))
self.horizontalLayout.addWidget(self.close_btn)
self.horizontalSpacer_3 = QSpacerItem(30, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer_3)
self.verticalLayout.addWidget(self.title_bar)
self.frame_2 = QFrame(self.main_container)
self.frame_2.setObjectName(u"frame_2")
self.frame_2.setMinimumSize(QSize(1199, 0))
self.frame_2.setMaximumSize(QSize(1199, 658))
self.frame_2.setFrameShape(QFrame.Shape.NoFrame)
self.frame_2.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_2 = QHBoxLayout(self.frame_2)
self.horizontalLayout_2.setSpacing(0)
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.left_column = QFrame(self.frame_2)
self.left_column.setObjectName(u"left_column")
self.left_column.setMinimumSize(QSize(450, 630))
self.left_column.setMaximumSize(QSize(450, 630))
self.left_column.setFrameShape(QFrame.Shape.NoFrame)
self.left_column.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_5 = QVBoxLayout(self.left_column)
self.verticalLayout_5.setSpacing(0)
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.frame = QFrame(self.left_column)
self.frame.setObjectName(u"frame")
self.frame.setFrameShape(QFrame.Shape.NoFrame)
self.frame.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_5.addWidget(self.frame)
self.frame_3 = QFrame(self.left_column)
self.frame_3.setObjectName(u"frame_3")
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.frame_3.sizePolicy().hasHeightForWidth())
self.frame_3.setSizePolicy(sizePolicy1)
self.frame_3.setMinimumSize(QSize(0, 100))
self.frame_3.setFrameShape(QFrame.Shape.NoFrame)
self.frame_3.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_6 = QHBoxLayout(self.frame_3)
self.horizontalLayout_6.setSpacing(0)
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
self.frame_5 = QFrame(self.frame_3)
self.frame_5.setObjectName(u"frame_5")
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth())
self.frame_5.setSizePolicy(sizePolicy2)
self.frame_5.setMinimumSize(QSize(0, 0))
self.frame_5.setFrameShape(QFrame.Shape.NoFrame)
self.frame_5.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_8 = QHBoxLayout(self.frame_5)
self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
self.label = QLabel(self.frame_5)
self.label.setObjectName(u"label")
self.label.setAutoFillBackground(False)
self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.horizontalLayout_8.addWidget(self.label)
self.queue_position = QLabel(self.frame_5)
self.queue_position.setObjectName(u"queue_position")
self.queue_position.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.horizontalLayout_8.addWidget(self.queue_position)
self.horizontalSpacer_5 = QSpacerItem(80, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout_8.addItem(self.horizontalSpacer_5)
self.horizontalLayout_6.addWidget(self.frame_5)
self.verticalLayout_5.addWidget(self.frame_3)
self.frame_4 = QFrame(self.left_column)
self.frame_4.setObjectName(u"frame_4")
sizePolicy1.setHeightForWidth(self.frame_4.sizePolicy().hasHeightForWidth())
self.frame_4.setSizePolicy(sizePolicy1)
self.frame_4.setMinimumSize(QSize(0, 0))
self.frame_4.setMaximumSize(QSize(16777215, 50))
self.frame_4.setStyleSheet(u"")
self.frame_4.setFrameShape(QFrame.Shape.NoFrame)
self.frame_4.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_7 = QHBoxLayout(self.frame_4)
self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
self.horizontalSlider = QSlider(self.frame_4)
self.horizontalSlider.setObjectName(u"horizontalSlider")
self.horizontalSlider.setAutoFillBackground(False)
self.horizontalSlider.setStyleSheet(u"")
self.horizontalSlider.setValue(20)
self.horizontalSlider.setOrientation(Qt.Orientation.Horizontal)
self.horizontalSlider.setInvertedAppearance(False)
self.horizontalLayout_7.addWidget(self.horizontalSlider)
self.volume_btn = QPushButton(self.frame_4)
self.volume_btn.setObjectName(u"volume_btn")
self.volume_btn.setMinimumSize(QSize(32, 32))
icon2 = QIcon()
icon2.addFile(u":/assets/sound-speaker.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.volume_btn.setIcon(icon2)
self.volume_btn.setFlat(True)
self.horizontalLayout_7.addWidget(self.volume_btn)
self.horizontalSpacer_10 = QSpacerItem(180, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout_7.addItem(self.horizontalSpacer_10)
self.verticalLayout_5.addWidget(self.frame_4)
self.horizontalLayout_2.addWidget(self.left_column)
self.right_column = QFrame(self.frame_2)
self.right_column.setObjectName(u"right_column")
sizePolicy2.setHeightForWidth(self.right_column.sizePolicy().hasHeightForWidth())
self.right_column.setSizePolicy(sizePolicy2)
self.right_column.setMinimumSize(QSize(0, 650))
self.right_column.setMaximumSize(QSize(700, 650))
self.right_column.setFrameShape(QFrame.Shape.NoFrame)
self.right_column.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_2 = QVBoxLayout(self.right_column)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.title_frame = QFrame(self.right_column)
self.title_frame.setObjectName(u"title_frame")
sizePolicy1.setHeightForWidth(self.title_frame.sizePolicy().hasHeightForWidth())
self.title_frame.setSizePolicy(sizePolicy1)
self.title_frame.setMinimumSize(QSize(0, 140))
self.title_frame.setMaximumSize(QSize(16777215, 180))
self.title_frame.setStyleSheet(u"")
self.title_frame.setFrameShape(QFrame.Shape.NoFrame)
self.title_frame.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_3 = QVBoxLayout(self.title_frame)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.verticalLayout_3.setContentsMargins(-1, -1, -1, 9)
self.maintitle_label = QLabel(self.title_frame)
self.maintitle_label.setObjectName(u"maintitle_label")
self.verticalLayout_3.addWidget(self.maintitle_label, 0, Qt.AlignmentFlag.AlignHCenter)
self.verticalSpacer = QSpacerItem(20, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_3.addItem(self.verticalSpacer)
self.subtitle_label = QLabel(self.title_frame)
self.subtitle_label.setObjectName(u"subtitle_label")
self.subtitle_label.setMinimumSize(QSize(0, 0))
self.subtitle_label.setTextFormat(Qt.TextFormat.AutoText)
self.subtitle_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.verticalLayout_3.addWidget(self.subtitle_label)
self.verticalLayout_2.addWidget(self.title_frame, 0, Qt.AlignmentFlag.AlignHCenter)
self.btn_frame = QFrame(self.right_column)
self.btn_frame.setObjectName(u"btn_frame")
sizePolicy1.setHeightForWidth(self.btn_frame.sizePolicy().hasHeightForWidth())
self.btn_frame.setSizePolicy(sizePolicy1)
self.btn_frame.setMinimumSize(QSize(0, 150))
self.btn_frame.setMaximumSize(QSize(16777215, 150))
self.btn_frame.setStyleSheet(u"")
self.btn_frame.setFrameShape(QFrame.Shape.NoFrame)
self.btn_frame.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_4 = QVBoxLayout(self.btn_frame)
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.horizontalLayout_3 = QHBoxLayout()
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_3.addItem(self.horizontalSpacer_4)
self.connexion_btn = QPushButton(self.btn_frame)
self.connexion_btn.setObjectName(u"connexion_btn")
self.connexion_btn.setMinimumSize(QSize(250, 50))
self.connexion_btn.setMaximumSize(QSize(16777215, 16777215))
self.connexion_btn.setStyleSheet(u"")
icon3 = QIcon()
icon3.addFile(u":/assets/padlock-lock.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.connexion_btn.setIcon(icon3)
self.connexion_btn.setIconSize(QSize(32, 32))
self.horizontalLayout_3.addWidget(self.connexion_btn)
self.spacer_substitution = QWidget(self.btn_frame)
self.spacer_substitution.setObjectName(u"spacer_substitution")
self.spacer_substitution.setMinimumSize(QSize(53, 0))
self.horizontalLayout_3.addWidget(self.spacer_substitution)
self.staff_btn = QPushButton(self.btn_frame)
self.staff_btn.setObjectName(u"staff_btn")
self.staff_btn.setMinimumSize(QSize(250, 50))
self.staff_btn.setMaximumSize(QSize(16777215, 16777215))
self.horizontalLayout_3.addWidget(self.staff_btn)
self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_3.addItem(self.horizontalSpacer_6)
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
self.horizontalLayout_4 = QHBoxLayout()
self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_4.addItem(self.horizontalSpacer_7)
self.discord_btn = QPushButton(self.btn_frame)
self.discord_btn.setObjectName(u"discord_btn")
self.discord_btn.setMinimumSize(QSize(250, 50))
icon4 = QIcon()
icon4.addFile(u":/assets/Logo_Discord_2015.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.discord_btn.setIcon(icon4)
self.discord_btn.setIconSize(QSize(32, 32))
self.horizontalLayout_4.addWidget(self.discord_btn)
self.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_4.addItem(self.horizontalSpacer_8)
self.intranet_btn = QPushButton(self.btn_frame)
self.intranet_btn.setObjectName(u"intranet_btn")
self.intranet_btn.setMinimumSize(QSize(250, 50))
icon5 = QIcon()
icon5.addFile(u":/assets/computer-tv.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.intranet_btn.setIcon(icon5)
self.intranet_btn.setIconSize(QSize(32, 32))
self.horizontalLayout_4.addWidget(self.intranet_btn)
self.horizontalSpacer_9 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_4.addItem(self.horizontalSpacer_9)
self.verticalLayout_4.addLayout(self.horizontalLayout_4)
self.verticalLayout_2.addWidget(self.btn_frame)
self.verticalSpacer_3 = QSpacerItem(20, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_2.addItem(self.verticalSpacer_3)
self.info_frame = QFrame(self.right_column)
self.info_frame.setObjectName(u"info_frame")
sizePolicy1.setHeightForWidth(self.info_frame.sizePolicy().hasHeightForWidth())
self.info_frame.setSizePolicy(sizePolicy1)
self.info_frame.setMinimumSize(QSize(0, 310))
self.info_frame.setMaximumSize(QSize(16777215, 280))
self.info_frame.setStyleSheet(u"")
self.info_frame.setFrameShape(QFrame.Shape.StyledPanel)
self.info_frame.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_5 = QHBoxLayout(self.info_frame)
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
self.info_text = QTextEdit(self.info_frame)
self.info_text.setObjectName(u"info_text")
self.info_text.setReadOnly(True)
self.horizontalLayout_5.addWidget(self.info_text)
self.verticalLayout_2.addWidget(self.info_frame)
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_2.addItem(self.verticalSpacer_2)
self.horizontalLayout_2.addWidget(self.right_column)
self.verticalLayout.addWidget(self.frame_2)
MainWindow.setCentralWidget(self.main_container)
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.minimize_btn.setText("")
self.close_btn.setText("")
self.label.setText(QCoreApplication.translate("MainWindow", u"Position en file d'attente: ", None))
self.queue_position.setText(QCoreApplication.translate("MainWindow", u"20", None))
self.volume_btn.setText("")
self.maintitle_label.setText(QCoreApplication.translate("MainWindow", u"LA TANI\u00c8RE", None))
self.subtitle_label.setText(QCoreApplication.translate("MainWindow", u"Un espace pour se retrouver", None))
self.connexion_btn.setText(QCoreApplication.translate("MainWindow", u" Connexion", None))
self.staff_btn.setText(QCoreApplication.translate("MainWindow", u"staff", None))
self.discord_btn.setText(QCoreApplication.translate("MainWindow", u" Discord", None))
self.intranet_btn.setText(QCoreApplication.translate("MainWindow", u" Intranet", None))
# retranslateUi