Untitled

 avatar
unknown
python
2 years ago
35 kB
6
Indexable
import ctypes
import sys

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt, QCoreApplication
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QPushButton, QWidget, QLineEdit, QVBoxLayout, QFormLayout, QLabel, \
    QGridLayout, QDesktopWidget, QFrame, QHBoxLayout, \
    QSizeGrip, QStackedWidget, QRadioButton, QCheckBox, QComboBox
from DBconnect import Connect


class LoggedWin(QWidget):
    # def __init__(self, customerID):
    customerID = 'C001'

    def __init__(self):
        super().__init__()
        customerID = 'C001'
        title = 'Taxi booking system'
        left = 0
        top = 0
        width = 700
        height = 500
        self.setWindowTitle(title)
        self.setGeometry(left, top, width, height)
        qtRectangle = self.frameGeometry()
        centerPoint = QDesktopWidget().availableGeometry().center()
        qtRectangle.moveCenter(centerPoint)
        self.move(qtRectangle.topLeft())
        self.setContentsMargins(0, 0, 0, 0)
        self.setMinimumSize(680, 430)

        myappid = 'mycompany.myproduct.subproduct.version'  # ICON ON BOTTOM BAR WINdows
        ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
        self.setWindowIcon(QtGui.QIcon('img\\taxiiii.png'))

        self.selfLayout = QHBoxLayout(self)
        self.set_Margins_And_Spac_0(self.selfLayout)
        # remove title bar
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        # set main background transparent
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)

        # QSizeGrip(self.statusFrame)

        # ----------------------------------BUTTON FRAME -------------------------------------------------------------
        # CREATING BUTTON FRAME
        self.buttonFrame = QFrame(self)
        self.buttonFrame.setMinimumSize(170, 400)
        self.buttonFrame.setMaximumSize(170, 16777215)
        self.buttonFrame.setStyleSheet("background-color:black")
        self.buttonLayout = QVBoxLayout(self.buttonFrame)
        self.set_Margins_And_Spac_0(self.buttonLayout)

        # CREATING BUTTONS IN BUTTON FRAME------------------
        # Book TRIP BUTTON
        self.bookTripFra = QFrame(self.buttonFrame)  # Adding Frame to Button Frame
        self.bookTripBut = QPushButton("Book a trip")  # creating pushbutton
        self.personalizeButtons(self.bookTripBut)  # calling function that personailize a button
        self.bookTripLayout = QGridLayout(self.bookTripFra)  # creating a layout for one button frame
        self.bookTripLayout.setContentsMargins(0, 0, 0,
                                               0)  # deleting margins in layout so button can expand for whole frame
        self.bookTripLayout.setSpacing(0)
        self.bookTripLayout.addWidget(self.bookTripBut)  # adding buutton to layout so it can be visable

        self.bookTripBut.clicked.connect(lambda: self.book_Trip_Clicked())  # calling function for that button

        # BOOKED TRIPS BUTTON
        self.bookedFra = QFrame(self.buttonFrame)
        self.bookedBut = QPushButton("Booked trip")
        self.personalizeButtons(self.bookedBut)
        self.bookedLayout = QGridLayout(self.bookedFra)
        self.set_Margins_And_Spac_0(self.bookedLayout)
        self.bookedLayout.addWidget(self.bookedBut)

        self.bookedBut.clicked.connect(lambda: self.booked_Trip_Clicked())

        # PERSONAL INFORMATION BUTTON
        self.personalInfFra = QFrame(self.buttonFrame)
        self.personalInfBut = QPushButton("Personal\nInformation")
        self.personalizeButtons(self.personalInfBut)
        self.personalInfLayout = QGridLayout(self.personalInfFra)
        self.set_Margins_And_Spac_0(self.personalInfLayout)
        self.personalInfLayout.addWidget(self.personalInfBut)

        self.personalInfBut.clicked.connect(lambda: self.personal_Inf_Clicked())

        # LOGOUT BUTTON
        self.logoutFra = QFrame(self.buttonFrame)
        self.logoutFra.setMinimumSize(190, 40)
        self.logoutFra.setMaximumSize(190, 40)
        self.logoutBut = QPushButton("Logout")
        self.logoutBut.setFont(QFont('Times', 13))
        self.logoutBut.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                           QtWidgets.QSizePolicy.MinimumExpanding))
        self.logoutBut.setStyleSheet("""
            QPushButton {
                background-color: #202020;
                color:white;
                text-align: left;
            }
            QPushButton:hover {
                background-color: red;
                color: #202020;
            }""")
        self.logoutLayout = QGridLayout(self.logoutFra)
        self.set_Margins_And_Spac_0(self.logoutLayout)
        self.logoutLayout.addWidget(self.logoutBut)

        #########
        self.basicButtons()  # Function that changed color of buttons and adding hover effect
        self.clickedButton(self.bookTripBut)
        # ADDING BUTTONS TO FRAME
        self.buttonLayout.addWidget(self.bookTripFra)
        self.buttonLayout.addWidget(self.bookedFra)
        self.buttonLayout.addWidget(self.personalInfFra)
        self.buttonLayout.addWidget(self.logoutFra)

        ############################################BUTTON FRAME FINISH###########################################

        ###########################################RIGHT HAND FRAME###########################################
        self.rightFrame = QFrame(self)
        self.rightFrame.setStyleSheet("background-color:white")
        self.rightLayout = QVBoxLayout(self.rightFrame)
        self.set_Margins_And_Spac_0(self.rightLayout)

        # ====================================================Creating title frame
        self.titleBarFrame = QFrame(self.rightFrame)
        self.titleBarFrame.setMinimumHeight(30)
        self.titleBarFrame.setMaximumHeight(30)
        self.titleBarLayout = QHBoxLayout(self.titleBarFrame)
        self.set_Margins_And_Spac_0(self.titleBarLayout)

        # name of app label
        self.nameFrame = QFrame(self.titleBarFrame)
        self.nameLbl = QLabel()
        self.nameLbl.setText("Taxi booking system")
        self.nameLbl.setFont(QFont('Times', 13))
        self.nameLbl.setStyleSheet("""
                            QLabel {
                                background-color: #202020;
                                color:white;;
                            }""")
        self.nameLbl.setContentsMargins(0, 0, 0, 0)
        self.nameLbl.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                         QtWidgets.QSizePolicy.MinimumExpanding))
        self.nameLbl.setAlignment(Qt.AlignCenter)
        self.nameLayout = QGridLayout(self.nameFrame)
        self.set_Margins_And_Spac_0(self.nameLayout)

        self.nameLayout.addWidget(self.nameLbl)

        # Minimalize app button----
        self.minimalizeFrame = QFrame(self.titleBarFrame)
        self.minimalizeFrame.setMinimumSize(30, 30)
        self.minimalizeFrame.setMaximumSize(30, 30)
        self.minimalizeBut = QPushButton("_")
        self.minimalizeBut.setFont(QFont('Times', 13))
        self.minimalizeBut.setContentsMargins(0, 0, 0, 0)
        self.minimalizeBut.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                               QtWidgets.QSizePolicy.MinimumExpanding))
        self.minimalizeBut.setStyleSheet("""
                    QPushButton {
                        background-color: #202020;
                        color:white;;
                    }
                    QPushButton:hover {
                        background-color: grey;
                        color: #202020;
                    }""")
        self.minimalizeLayout = QGridLayout(self.minimalizeFrame)
        self.set_Margins_And_Spac_0(self.minimalizeLayout)
        self.minimalizeLayout.addWidget(self.minimalizeBut)
        # action
        self.minimalizeBut.clicked.connect(self.showMinimized)

        # maximalize app button-----
        self.maximalizeFrame = QFrame(self.titleBarFrame)
        self.maximalizeFrame.setMinimumSize(30, 30)
        self.maximalizeFrame.setMaximumSize(30, 30)
        self.maximalizeBut = QPushButton("🡥")
        self.maximalizeBut.setFont(QFont('Times', 13))
        self.maximalizeBut.setContentsMargins(0, 0, 0, 0)
        self.maximalizeBut.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                               QtWidgets.QSizePolicy.MinimumExpanding))
        self.maximalizeBut.setStyleSheet("""
                            QPushButton {
                                background-color: #202020;
                                color:white;;
                            }
                            QPushButton:hover {
                                background-color: grey;
                                color: #202020;
                            }""")
        self.maximalizeLayout = QGridLayout(self.maximalizeFrame)
        self.set_Margins_And_Spac_0(self.maximalizeLayout)
        self.maximalizeLayout.addWidget(self.maximalizeBut)
        # action
        self.maximalizeBut.clicked.connect(self.resMaxWin)

        # close app button----
        self.closeFrame = QFrame(self.titleBarFrame)
        self.closeFrame.setMinimumSize(30, 30)
        self.closeFrame.setMaximumSize(30, 30)
        self.closeBut = QPushButton("X")
        self.closeBut.setFont(QFont('Times', 13))
        self.closeBut.setContentsMargins(0, 0, 0, 0)
        self.closeBut.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                          QtWidgets.QSizePolicy.MinimumExpanding))
        self.closeBut.setStyleSheet("""
                                    QPushButton {
                                        background-color: #202020;
                                        color:white;;
                                    }
                                    QPushButton:hover {
                                        background-color: red;
                                        color: #202020;
                                    }""")
        self.closeLayout = QGridLayout(self.closeFrame)
        self.set_Margins_And_Spac_0(self.closeLayout)
        self.closeLayout.addWidget(self.closeBut)
        # action
        self.closeBut.clicked.connect(QCoreApplication.instance().quit)

        # ADDING content to information frame
        self.titleBarLayout.addWidget(self.nameFrame)
        self.titleBarLayout.addWidget(self.minimalizeFrame)
        self.titleBarLayout.addWidget(self.maximalizeFrame)
        self.titleBarLayout.addWidget(self.closeFrame)

        # ====================================================finish title frame
        # ====================================================Create content frame

        self.contentFrame = QFrame(self.rightFrame)
        self.contentLayout = QVBoxLayout(self.contentFrame)
        self.set_Margins_And_Spac_0(self.contentLayout)
        self.contentStack = QStackedWidget(self.contentFrame)

        self.bookTripStack = QFrame()
        self.bookedStack = QFrame()
        self.personalInfStack = QFrame()

        self.bookTripStackUI()
        self.bookedStackUI()
        self.personalInfStackUI()

        self.contentStack.addWidget(self.bookTripStack)
        self.contentStack.addWidget(self.bookedStack)
        self.contentStack.addWidget(self.personalInfStack)

        self.contentLayout.addWidget(self.contentStack)

        # ====================================================Finish content frame
        # ====================================================Create bottom bar

        self.statusFrame = QFrame(self.rightFrame)
        self.statusFrame.setMinimumHeight(15)
        self.statusFrame.setMaximumHeight(15)
        self.statusFrame.setStyleSheet("background-color:grey")
        self.statusLayout = QHBoxLayout(self.statusFrame)
        self.set_Margins_And_Spac_0(self.statusLayout)

        #  label in status bar------------
        self.bottomFrame = QFrame(self.statusFrame)
        self.bottomLbl = QLabel()

        query = f"SELECT `CFName`, `CSName` FROM `customer` WHERE `CustomerID` = '{customerID}';"
        forenameAndSurname = Connect.select_DB(query)
        self.bottomLbl.setText(f"Hello {forenameAndSurname[0][0].capitalize()} {forenameAndSurname[0][1].capitalize()}")
        self.bottomLbl.setFont(QFont('Times', 12))
        self.bottomLbl.setStyleSheet("""
                                    QLabel {
                                        background-color: grey;
                                        color:white;;
                                    }""")
        self.bottomLbl.setContentsMargins(0, 0, 0, 0)
        self.bottomLbl.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                           QtWidgets.QSizePolicy.MinimumExpanding))
        self.bottomLbl.setAlignment(Qt.AlignCenter)
        self.bottomLayout = QGridLayout(self.bottomFrame)
        self.set_Margins_And_Spac_0(self.bottomLayout)
        self.bottomLayout.addWidget(self.bottomLbl)

        # SIZE GRIP----------------------
        self.sizeFrame = QFrame(self.statusFrame)
        self.sizeFrame.setMinimumSize(5, 5)
        self.sizeFrame.setMaximumSize(5, 5)
        self.sizeFrame.setStyleSheet("background-color:black")
        self.sizeGrip = QSizeGrip(self.sizeFrame)
        self.sizeGrip.setContentsMargins(0, 0, 0, 0)
        self.sizeGrip.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                          QtWidgets.QSizePolicy.MinimumExpanding))
        self.sizeLayout = QHBoxLayout(self.sizeFrame)
        self.set_Margins_And_Spac_0(self.sizeLayout)
        self.sizeLayout.addWidget(self.sizeGrip)

        # Adding content to status bar

        self.statusLayout.addWidget(self.bottomFrame, alignment=QtCore.Qt.AlignLeft)
        self.statusLayout.addWidget(self.sizeFrame, alignment=QtCore.Qt.AlignRight | QtCore.Qt.AlignBottom)

        # ====================================================finish bottom bar

        # Adding content to right frame
        self.rightLayout.addWidget(self.titleBarFrame)
        self.rightLayout.addWidget(self.contentFrame)
        self.rightLayout.addWidget(self.statusFrame)
        #############################################RIGHT HAND FRAME FINISH ###########################################
        # ADDING FRAME WITH BUTTONS AND right hand FRAME TO WINDOW
        self.selfLayout.addWidget(self.buttonFrame)
        self.selfLayout.addWidget(self.rightFrame)

        # MOVE WINDOW -------------------
        def moveWindow(e):
            if self.isMaximized() == False:
                if e.buttons() == Qt.LeftButton:
                    self.move(self.pos() + e.globalPos() - self.clickPosition)
                    self.clickPosition = e.globalPos()
                    e.accept()

        self.titleBarFrame.mouseMoveEvent = moveWindow

    def book_Trip_Clicked(self):
        self.basicButtons()
        self.clickedButton(self.bookTripBut)
        self.display(0)

    def set_Margins_And_Spac_0(self,layout):
        layout.setContentsMargins(0, 0, 0, 0)
        layout.setSpacing(0)


    def booked_Trip_Clicked(self):
        self.basicButtons()
        self.clickedButton(self.bookedBut)
        self.display(1)

    def personal_Inf_Clicked(self):
        self.basicButtons()
        self.clickedButton(self.personalInfBut)
        self.display(2)

    def display(self, i):
        self.contentStack.setCurrentIndex(i)

    # -------RESTORE MAXIMALIZE WINDOW FUNCTION
    def resMaxWin(self):
        if self.isMaximized():
            self.showNormal()
            self.maximalizeBut.setText("🡥")
        else:
            self.showMaximized()
            self.maximalizeBut.setText("🡧")

    # ------ MOUSE POSITION
    def mousePressEvent(self, event):
        self.clickPosition = event.globalPos()

    def basicButtons(self):
        self.bookedBut.setStyleSheet("""
                            QPushButton {
                                background-color: #202020;
                                color:white;
                                text-align: left;
                                border: none;
                            }
                            QPushButton:hover {
                                background-color: white;
                                color: #202020;
                                text-align: left;
                                border: none;
                                
                            }
                            QPushButton:pressed {
                                border: none;
                                text-align: left;
                            }""")
        self.bookTripBut.setStyleSheet("""
                            QPushButton {
                                background-color: #202020;
                                color:white;
                                text-align: left;
                                border: none;
                            }
                            QPushButton:hover {
                                background-color: white;
                                text-align: left;
                                color: #202020;
                                border: none;
                            }
                            QPushButton:pressed {
                                text-align: left;
                                border: none;
                            }""")
        self.personalInfBut.setStyleSheet("""
                            QPushButton {
                                background-color: #202020;
                                color:white;
                                text-align: left;
                                border: none;
                            }
                            QPushButton:hover {
                                background-color: white;
                                color: #202020;
                                border: none;
                            }
                            QPushButton:pressed {
                                border: none;
                            }""")

    def clickedButton(self, button):
        button.setStyleSheet("""
                            QPushButton {
                                background-color: white;
                                color:black;
                                text-align: left;
                                border: none;
                            }
                            """)

    def personalizeButtons(self, button):
        button.setFont(QFont('Times', 15))
        button.setContentsMargins(0, 0, 0, 0)
        button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                   QtWidgets.QSizePolicy.MinimumExpanding))

                                             #Book Trip Stack
    def bookTripStackUI(self):
        layout = QHBoxLayout(self.bookTripStack)
        self.set_Margins_And_Spac_0(layout)

        leftFrame = QFrame(self.bookTripStack)
        leftFrame.setMinimumWidth(360)

        leftLayout = QVBoxLayout(leftFrame)
        self.set_Margins_And_Spac_0(leftLayout)

                                                # IN FRAME
                                                                                #now later Frame
        nowLaterFrame = QFrame(leftFrame)
        topLayout = QHBoxLayout(nowLaterFrame)
        nowLaterFrame.setMinimumHeight(50)
        nowLaterFrame.setMaximumHeight(50)
        self.nowRadio = QRadioButton("now")

        self.nowRadio.setFont(QFont("times", 16))
        self.laterRadio = QRadioButton("later")
        self.laterRadio.setFont(QFont("times", 16))
        self.laterRadio.setChecked(True)
        whenLabel = QLabel("When:")
        whenLabel.setFont(QFont("Times", 16))
        topLayout.addWidget(whenLabel)
        topLayout.addWidget(self.nowRadio)
        topLayout.addWidget(self.laterRadio)

                                                                                     #from to Frame
        fromToFrame = QFrame(leftFrame)
        fromToLayout = QGridLayout(fromToFrame)
        self.streetFromLine = QLineEdit()
        self.streetFromLine.setStyleSheet("QLineEdit {border: 3px solid black;}")
        self.postCodeFrom = QLineEdit()
        self.postCodeFrom.setStyleSheet("QLineEdit {border: 3px solid black;}")
        self.streetToLine = QLineEdit()
        self.streetToLine.setStyleSheet("QLineEdit {border: 3px solid black;}")
        self.postCodeFrom.setFixedWidth(70)
        self.postCodeTo = QLineEdit()
        self.postCodeTo.setStyleSheet("QLineEdit {border: 3px solid black;}")
        self.postCodeTo.setFixedWidth(70)
        fromLbl = QLabel("from")
        fromLbl.setFont(QFont("Times", 16))
        fromToLayout.addWidget(fromLbl, 0, 0, 1, 2, QtCore.Qt.AlignCenter)

        fromFrame = QFrame(fromToFrame)
        fromLayout = QHBoxLayout(fromFrame)
        fromLayout.addWidget(QLabel("street &\nhouse number:"))
        fromLayout.addWidget(self.streetFromLine)
        fromLayout.addWidget(QLabel("post code:"))
        fromLayout.addWidget(self.postCodeFrom)

        fromToLayout.addWidget(fromFrame, 1, 0, 1, 3, QtCore.Qt.AlignLeft)

        toLabel = QLabel("to")
        toLabel.setFont(QFont("Times", 16))
        fromToLayout.addWidget(toLabel, 2, 0, 1, 2, QtCore.Qt.AlignCenter)

        toFrame = QFrame(fromToFrame)
        toLayout = QHBoxLayout(toFrame)
        toLayout.addWidget(QLabel("street &\nhouse number:"))
        toLayout.addWidget(self.streetToLine)
        toLayout.addWidget(QLabel("post code:"))
        toLayout.addWidget(self.postCodeTo)

        fromToLayout.addWidget(toFrame, 3, 0, 1, 3, QtCore.Qt.AlignLeft)

                                                                                        #when frame
        whenFrame = QFrame(leftFrame)
        whenLayout = QGridLayout(whenFrame)
        self.dateEdit = QtWidgets.QDateEdit(calendarPopup=True)
        self.dateEdit.setStyleSheet(""" QDateEdit{
                                            border : 3px solid black;
                                            background : white;
                                        }
                                        QDateEdit::up-arrow{
                                            border : 2px solid black;
                                            background-color : lightgreen;
                                        }
                                        QDateEdit::down-arrow{
                                            border : 2px solid black;
                                            background-color : green;
                                        }""")
        self.dateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
        self.hoursComboBox = QComboBox()
        self.hoursComboBox.setStyleSheet("QComboBox {border: 3px solid black;}")
        self.hoursComboBox.setFixedWidth(50)
        hours = []
        self.minutesComboBox = QComboBox()
        self.minutesComboBox.setStyleSheet("QComboBox {border: 3px solid black;}")
        self.minutesComboBox.setFixedWidth(50)
        minutes = []
        for i in range(24):
            hours.append(str(i))
        for i in range(0, 60, 5):
            minutes.append(str(i))
        self.searchButton = QPushButton("Search")
        self.searchButton.setStyleSheet("QPushButton {background: grey;}")
        self.afterSearchLabel = QLabel("")
        self.afterSearchLabel.setStyleSheet("QLabel{ color: red}")
        self.hoursComboBox.addItems(hours)
        self.minutesComboBox.addItems(minutes)
        self.selectTime = QLabel("Select time: ")
        self.selectDate = QLabel("Select Date: ")

        selectTimeFrame = QFrame(whenFrame)
        selectTimeLayout = QHBoxLayout(selectTimeFrame)
        selectTimeLayout.addWidget(self.selectTime, QtCore.Qt.AlignRight)
        selectTimeLayout.addWidget(self.hoursComboBox)
        selectTimeLayout.addWidget(self.minutesComboBox)

        selectDateFrame = QFrame(whenFrame)
        selectDateLayout = QHBoxLayout(selectDateFrame)
        selectDateLayout.addWidget(self.selectDate)
        selectDateLayout.addWidget(self.dateEdit)

        whenLayout.addWidget(selectTimeFrame, 0, 0, 1, 3, QtCore.Qt.AlignLeft)
        whenLayout.addWidget(selectDateFrame, 1, 0, 1, 2, QtCore.Qt.AlignLeft)
        whenLayout.addWidget(self.searchButton, 1, 2, 1, 1, QtCore.Qt.AlignRight)
        whenLayout.addWidget(self.afterSearchLabel, 2, 1, 1, 2, QtCore.Qt.AlignRight)




        leftLayout.addWidget(nowLaterFrame)
        leftLayout.addWidget(fromToFrame)
        leftLayout.addWidget(whenFrame)


        self.nowRadio.clicked.connect(self.now_radio_selected)
        self.laterRadio.clicked.connect(self.later_radio_selected)

        self.searchButton.clicked.connect(lambda: self.on_click_search(self.laterRadio.isChecked()))

        #######################RIGHT BOOK TRIP
        rightFrame = QFrame(self.bookTripStack)
        rightFrame.setMaximumWidth(150)
        rightFrame.setMinimumWidth(150)
        rightLayout = QVBoxLayout(rightFrame)
        self.set_Margins_And_Spac_0(rightLayout)

                                                                #BUTTONS and label
                                                                #choose car
        chooseCarFrame = QFrame(rightFrame)
        chooseCarFrame.setMaximumHeight(40)
        chooseCarFrame.setMinimumHeight(40)
        chooseCarLabel = QLabel("Choose car:")
        chooseCarLabel.setAlignment(Qt.AlignCenter)
        chooseCarLabel.setStyleSheet("""
                                        QLabel {
                                            background: black;
                                            color: white;
                                        }""")
        chooseCarLayout = QGridLayout(chooseCarFrame)
        self.set_Margins_And_Spac_0(chooseCarLayout)
        chooseCarLayout.addWidget(chooseCarLabel)
                                                                #economic
        economicFrame = QFrame(rightFrame)

        self.economicButton = QPushButton("ECONOMIC")
        self.personalizeButtons(self.economicButton)
        self.economicButton.setStyleSheet("QPushButton {background: grey}")
        economicLayout = QGridLayout(economicFrame)
        self.set_Margins_And_Spac_0(economicLayout)
        economicLayout.addWidget(self.economicButton)

                                                                #family

        familyFrame = QFrame(rightFrame)
        self.familyButton = QPushButton("FAMILY \n (7 seats)")
        self.personalizeButtons(self.familyButton)
        self.familyButton.setStyleSheet("QPushButton {background: grey}")
        familyLayout = QGridLayout(familyFrame)
        self.set_Margins_And_Spac_0(familyLayout)
        familyLayout.addWidget(self.familyButton)

                                                               #premium

        premiumFrame = QFrame(rightFrame)
        self.premiumButton = QPushButton("Premium")
        self.personalizeButtons(self.premiumButton)
        self.premiumButton.setStyleSheet("QPushButton {background: grey}")
        premiumLayout = QGridLayout(premiumFrame)
        self.set_Margins_And_Spac_0(premiumLayout)
        premiumLayout.addWidget(self.premiumButton)

        self.car_button_enableFalse()
        #############ADDING TO RIGHT FRAME
        rightLayout.addWidget(chooseCarFrame)
        rightLayout.addWidget(economicFrame)
        rightLayout.addWidget(familyFrame)
        rightLayout.addWidget(premiumFrame)

        layout.addWidget(leftFrame)
        layout.addWidget(rightFrame)
                                            #NOW Radiobutton
    def now_radio_selected(self):
        if self.nowRadio.isChecked():
            self.car_button_enableFalse()
            self.minutesComboBox.hide()
            self.hoursComboBox.hide()
            self.dateEdit.hide()
            self.selectTime.hide()
            self.selectDate.hide()
                                            #LEter radiobutton
    def later_radio_selected(self):
        if self.laterRadio.isChecked():
            self.car_button_enableFalse()
            self.minutesComboBox.show()
            self.hoursComboBox.show()
            self.dateEdit.show()
            self.selectTime.show()
            self.selectDate.show()
                                            #Search button
    def on_click_search(self, check):
        if check:
            self.car_button_enableFalse()
            date = self.dateEdit.date().toPyDate()
            hours = str(self.hoursComboBox.currentText())
            minutes = str(self.minutesComboBox.currentText())
            self.carEconomic = []
            self.carFamily = []
            self.carPremium = []
            query = f"""
                        select carType, carPlate, carMake
                        from car
                        WHERE driverID in (
                            SELECT driverID
                            FROM driver
                            WHERE dStatus = 'active'
                            AND driverId NOT IN (SELECT DISTINCT `driverID`
                                FROM trip
                                WHERE (trip.tpickUpDate = '{date}') 
                                AND (trip.tpickUpHour BETWEEN SubTime ('{hours}:{minutes}:00', '00:29:59')
                                AND AddTime('{hours}:{minutes}:00', '00:30:00'))
                                AND (trip.tBookingStatus = 'approved' OR trip.tBookingStatus = 'active')))"""
        else:

            query =f"""
                        select carType, carPlate, carMake
                        from car
                        WHERE driverID in (
                            SELECT driverID
                            FROM driver
                            WHERE dStatus = 'active'
                            AND driverId NOT IN (SELECT DISTINCT `driverID`
                                FROM trip
                                WHERE (trip.tpickUpDate = current_timestamp) 
                                AND (trip.tpickUpHour BETWEEN SubTime (current_timestamp, '00:29:59')
                                AND AddTime(current_timestamp, '00:30:00'))
                                AND (trip.tBookingStatus = 'approved' OR trip.tBookingStatus = 'active')))"""
        carType = Connect.select_DB(query)
        print (carType)
        for i in carType:
            print(i)
            if 'family' in i:
                self.familyButton.setEnabled(True)
                self.carFamily.append((i[1], i[2]))

            if 'premium' in i:
                self.premiumButton.setEnabled(True)
                self.carPremium.append((i[1], i[2]))
            if 'economic' in i:
                self.economicButton.setEnabled(True)
                print(i[1], i[2])
                self.carEconomic.append("ssss")
                print(self.carEconomic)
        print(self.carPremium)
                                            #economic button
    def on_click_economicButton(self, check):
        if check:
            query = f"""
                        select carPlate, carType
                        from car
                        WHERE carType = 'economic'  
                        AND driverID in (
                            SELECT driverID
                            FROM driver
                            WHERE dStatus = 'active'
                            AND driverId NOT IN (SELECT DISTINCT `driverID`
                                FROM trip
                                WHERE (trip.tpickUpDate = '{self.date}') 
                                AND (trip.tpickUpHour BETWEEN SubTime ('{self.hours}:{self.minutes}:00', '00:29:59')
                                AND AddTime('{self.hours}:{self.minutes}:00', '00:30:00'))
                                AND (trip.tBookingStatus = 'approved' OR trip.tBookingStatus = 'active')))
                    """
        else:
            query =f"""
                        select carPlate, carType
                        from car
                        WHERE carType = 'economic'  
                        AND driverID in (
                            SELECT driverID
                            FROM driver
                            WHERE dStatus = 'active'
                            AND driverId NOT IN (SELECT DISTINCT `driverID`
                                FROM trip
                                WHERE (trip.tpickUpDate = current_timestamp) 
                                AND (trip.tpickUpHour BETWEEN SubTime (current_timestamp, '00:29:59')
                                AND AddTime(current_timestamp, '00:30:00'))
                                AND (trip.tBookingStatus = 'approved' OR trip.tBookingStatus = 'active')))
                    """



    def bookedStackUI(self):
        layout = QFormLayout()
        sex = QHBoxLayout()
        sex.addWidget(QRadioButton("Male"))
        sex.addWidget(QRadioButton("Female"))
        layout.addRow(QLabel("Sex"), sex)
        guzik = QPushButton("Guzik")
        layout.addRow(guzik)
        self.datas = QLineEdit()
        layout.addRow("data", self.datas)

        self.bookedStack.setStyleSheet("background-color:blue")
        self.bookedStack.setLayout(layout)

    def personalInfStackUI(self):
        layout = QHBoxLayout()
        layout.addWidget(QLabel("subjects"))
        layout.addWidget(QCheckBox("Physics"))
        layout.addWidget(QCheckBox("Maths"))
        self.personalInfStack.setStyleSheet("background-color:green")
        self.personalInfStack.setLayout(layout)



    def car_button_enableFalse(self):
        self.familyButton.setEnabled(False)
        self.economicButton.setEnabled(False)
        self.premiumButton.setEnabled(False)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = LoggedWin()
    ex.show()

    sys.exit(app.exec_())
Editor is loading...