Untitled
unknown
plain_text
13 days ago
9.9 kB
3
Indexable
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtGui import QFontDatabase, QIcon, QPixmap, QPalette, QBrush from PyQt5.QtCore import Qt from background_window import Background from functions import Function from config import Config, change_screen_resolution from camera_prediction import EmotionRecognizer from tutorial_window import TutorialWindow from tcwindow import TCWindow class ColorManager: @classmethod def set_color(cls, color): Config.set_color(color) class UiMainWindow(object): def __init__(self): self.background = Background() change_screen_resolution(1280, 720) font_id = QFontDatabase.addApplicationFont("Fonts/SmileFont.ttf") if font_id != -1: self.font_family = QFontDatabase.applicationFontFamilies(font_id)[0] # Get the font family name else: self.font_family = "Arial" # Fallback font self.emotion_recognition = EmotionRecognizer() def log_in_member(self): from predict_emotion_window import PredictEmotionWindow self.window = QtWidgets.QMainWindow() self.ui = PredictEmotionWindow() self.ui.setup_ui(self.window) self.window.show() def how_to_use(self): self.window = QtWidgets.QMainWindow() self.ui = TutorialWindow() self.ui.setup_ui(self.window) self.window.show() def terms_conditions(self): self.window = QtWidgets.QMainWindow() self.ui = TCWindow() self.ui.setup_ui(self.window) self.window.show() def select_gender(self, gender): if gender == "male": palette = self.centralwidget.palette() palette.setBrush(QPalette.Window, QBrush(QtGui.QColor('#bfe5ef'))) self.centralwidget.setPalette(palette) self.maleButton.setStyleSheet(""" QPushButton { background-color: #1893f8; border: 3px solid #462f48; image: url('Assets/male_icon.png'); } """) self.femaleButton.setStyleSheet(""" QPushButton { background-color: #bfe5ef; image: url('Assets/female_icon.png'); } """) ColorManager.set_color("#bfe5ef") else: palette = self.centralwidget.palette() palette.setBrush(QPalette.Window, QBrush(QtGui.QColor('#FFB6C1'))) self.centralwidget.setPalette(palette) self.femaleButton.setStyleSheet(""" QPushButton { background-color: #fa4dc8; border: 3px solid #462f48; image: url('Assets/female_icon.png'); } """) self.maleButton.setStyleSheet(""" QPushButton { background-color: #ffc4d4; image: url('Assets/male_icon.png'); } """) ColorManager.set_color("#FFB6C1") def setup_ui(self, MainWindow): MainWindow.setObjectName("main_window") MainWindow.showFullScreen() MainWindow.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") # Set initial background color palette = self.centralwidget.palette() palette.setBrush(QPalette.Window, QBrush(QtGui.QColor('#bfe5ef'))) self.centralwidget.setAutoFillBackground(True) self.centralwidget.setPalette(palette) # Add background image with opacity background = QtGui.QPixmap('Assets/clouds.png') self.background_label = QtWidgets.QLabel(self.centralwidget) self.background_label.setPixmap(background.scaled( MainWindow.size(), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation )) self.background_label.setStyleSheet('background-color: transparent;') self.background_label.lower() # Put behind other widgets opacity_effect = QtWidgets.QGraphicsOpacityEffect() opacity_effect.setOpacity(0.7) self.background_label.setGraphicsEffect(opacity_effect) # Resize background image with window size change def resizeEvent(event): super(MainWindow.__class__, self).resizeEvent(event) self.background_label.setPixmap(background.scaled( MainWindow.size(), QtCore.Qt.KeepAspectRatioByProportion, QtCore.Qt.SmoothTransformation )) self.background_label.setGeometry(0, 0, MainWindow.width(), MainWindow.height()) MainWindow.resizeEvent = resizeEvent # Add UI elements square_blue = Function.label(self.centralwidget, "square_orange", (465, 110, 323, 170), 70, None, self.font_family, "", "#E0E0E0", False, back_color='#0c6980') square_blue.setAlignment(QtCore.Qt.AlignCenter) square_orange = Function.label(self.centralwidget, "square_orange", (480, 125, 323, 170), 70, None, self.font_family, "", "#E0E0E0", False, back_color='#f58220') square_orange.setAlignment(QtCore.Qt.AlignCenter) application_name = Function.label(self.centralwidget, "application_name", (480, 105, 323, 156), 68, None, self.font_family, "EmotiCom", "#E0E0E0", False, back_color='None') application_name.setAlignment(QtCore.Qt.AlignCenter) application_slogan = Function.label(self.centralwidget, "application_slogan", (480, 210, 323, 50), 23, None, self.font_family, '"Connect, Express, Thrive!"', "#E0E0E0", False, back_color='None') application_slogan.setAlignment(QtCore.Qt.AlignCenter) self.terms = Function.push_button(self.centralwidget, "terms", (520, 300, 250, 50), 23, None, self.font_family, "Terms and Conditions", "#000000", False, back_color=None) self.terms.setStyleSheet(f""" #terms {{ font-size: 23px; font-weight: None; font-family: {self.font_family}, sans-serif; color: #000000; background: transparent; text-decoration: underline; }} """) self.terms.clicked.connect(self.terms_conditions) self.tutorial = Function.push_button(self.centralwidget, "tutorial", (530, 340, 220, 50), 23, None, self.font_family, "How to use?", "#000000", False, back_color=None) self.tutorial.setStyleSheet(f""" #tutorial {{ font-size: 23px; font-weight: None; font-family: {self.font_family}, sans-serif; color: #000000; background: transparent; text-decoration: underline; }} """) self.tutorial.clicked.connect(self.how_to_use) # Male Button self.maleButton = QtWidgets.QPushButton(self.centralwidget) self.maleButton.setGeometry(QtCore.QRect(580, 450, 50, 50)) self.maleButton.setStyleSheet(""" QPushButton { background-color: #1893f8; border: 3px solid #462f48; image: url('Assets/male_icon.png'); } """) self.maleButton.setObjectName("maleButton") self.maleButton.setIcon(QIcon(QPixmap("Assets/male.png"))) self.maleButton.setIconSize(QtCore.QSize(40, 40)) self.maleButton.clicked.connect(lambda: self.select_gender("male")) # Female Button self.femaleButton = QtWidgets.QPushButton(self.centralwidget) self.femaleButton.setGeometry(QtCore.QRect(650, 450, 50, 50)) self.femaleButton.setStyleSheet(""" QPushButton { background-color: #bfe5ef; image: url('Assets/female_icon.png'); } """) self.femaleButton.setObjectName("femaleButton") self.femaleButton.setIcon(QIcon(QPixmap("Assets/female.png"))) self.femaleButton.setIconSize(QtCore.QSize(40, 40)) self.femaleButton.clicked.connect(lambda: self.select_gender("female")) # Start Button self.startButton = QtWidgets.QPushButton(self.centralwidget) self.startButton.setGeometry(QtCore.QRect(478, 571, 323, 70)) self.startButton.setStyleSheet(f"""#startButton {{ font-size: 24px; font-family: {self.font_family}; color: black; border-radius: 20px; background-color: #f85646; text-align: top; }}""") self.startButton.setObjectName("startButton") self.startButton.clicked.connect(self.log_in_member) self.startButton.clicked.connect(MainWindow.close) MainWindow.setCentralWidget(self.centralwidget) self.retranslate_ui(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslate_ui(self, MainWindow): MainWindow.setWindowTitle("EmotiCom") self.startButton.setText("Start Now!") if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = UiMainWindow() ui.setup_ui(MainWindow) MainWindow.show() sys.exit(app.exec_())
Editor is loading...
Leave a Comment