Untitled
Anonymous
python
01/02/2023 4:23 PM
45.7 KB
13
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...