From 7409f323d675e576cd0e2c9e7de45a90df6d8ec2 Mon Sep 17 00:00:00 2001 From: Rohit Bisht Date: Sat, 9 Jan 2021 13:46:11 +0530 Subject: [PATCH] [UPDATE] PyQt5 gui --- .gitignore | 1 + Amazon_Price_Tracker/amazon.py | 208 +++++--- Amazon_Price_Tracker/gui/amazonGUI.py | 666 ++++++++++++++++++++++++++ images/app.png | Bin 64618 -> 64618 bytes 4 files changed, 796 insertions(+), 79 deletions(-) create mode 100644 .gitignore create mode 100644 Amazon_Price_Tracker/gui/amazonGUI.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e3ffd3a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +Amazon_Price_Tracker/gui/__pycache__/ diff --git a/Amazon_Price_Tracker/amazon.py b/Amazon_Price_Tracker/amazon.py index a18505a..eeef386 100644 --- a/Amazon_Price_Tracker/amazon.py +++ b/Amazon_Price_Tracker/amazon.py @@ -1,7 +1,8 @@ import sys +from PyQt5 import QtGui from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QPushButton, QAction, QLineEdit, QMessageBox -from PyQt5.QtGui import QIcon -from PyQt5.QtCore import pyqtSlot +from PyQt5.QtGui import QIcon, QValidator, QDoubleValidator, QRegExpValidator +from PyQt5.QtCore import pyqtSlot, QRegExp from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager import requests @@ -9,6 +10,7 @@ import smtplib import time from lxml import html +from gui.amazonGUI import Ui_MainWindow url = "" p = 0 @@ -16,100 +18,148 @@ usr_email = "" flag=0 -class App(QMainWindow): - +class App(Ui_MainWindow): def __init__(self): super().__init__() - self.title = 'Amazon-Price-Drop-Alert' - self.left = 10 - self.top = 10 - self.width = 330 - self.height = 140 - self.initUI() - - def initUI(self): - self.setWindowTitle(self.title) - self.setGeometry(self.left, self.top, self.width, self.height) - # Create textbox - self.textbox = QLineEdit(self) - self.textbox.move(20, 10) - self.textbox.resize(280,20) - - self.textbox2 = QLineEdit(self) - self.textbox2.move(20, 30) - self.textbox2.resize(280,20) +class MainWindow(QMainWindow, Ui_MainWindow): + def __init__(self, parent=None): + super(MainWindow, self).__init__(parent) + self.setupUi(self) + self.pushButton.clicked.connect(self.on_click) - self.textbox3 = QLineEdit(self) - self.textbox3.move(20, 50) - self.textbox3.resize(280,20) - # Create a button in the window - self.button = QPushButton('Give Result', self) - self.button.move(100,90) - - # connect button to function on_click - self.button.clicked.connect(self.on_click) - self.show() - @pyqtSlot() - def on_click(self): - url = self.textbox.text() - p = self.textbox2.text() - usr_email = self.textbox3.text() - # QMessageBox.question(self, 'Message - pythonspot.com', "You typed: " + textboxValue, QMessageBox.Ok, QMessageBox.Ok) - # self.textbox.setText("") - print(url+"\n") - print(p+"\n") - print(usr_email+"\n") - ex_price = float(p) - url = "https://www.amazon.in/Test-Exclusive-550/dp/B077Q7GW9V/ref=lp_22426818031_1_1" - driver = webdriver.Chrome(ChromeDriverManager().install()) - driver.get(url) - source = driver.page_source - soup = BeautifulSoup(source, 'html.parser') - title=soup.find('span', id ='productTitle').get_text().strip() - print(title) - try: - price = soup.find('span', id ='priceblock_dealprice').get_text().strip() - x="The item is currently discounted at : "+price - except AttributeError: + check = self.validator() + if check != "": + self.msgbox("Aleart", "WRONG INPUT", check) + else: + # QMessageBox.question(self, 'Message - pythonspot.com', "You typed: " + textboxValue, QMessageBox.Ok, QMessageBox.Ok) + print(self.url+"\n") + print(self.p+"\n") + print(self.usr_email+"\n") + ex_price = float(self.p) + # url = "https://www.amazon.in/Test-Exclusive-550/dp/B077Q7GW9V/ref=lp_22426818031_1_1" + self.driver = webdriver.Chrome(ChromeDriverManager().install()) + self.driver.get(self.url) + source = self.driver.page_source + soup = BeautifulSoup(source, 'html.parser') + title=soup.find('span', id ='productTitle').get_text().strip() + print(title) try: - price = soup.find('span', id ='priceblock_ourprice').get_text().strip() - x = "The product is not discounted currently and the price is : "+price + price = soup.find('span', id ='priceblock_dealprice').get_text().strip() + x="The item is currently discounted at : "+price except AttributeError: - x = "Product Unavailable!!" - exit() - print(x) - px = "" - for ch in price: - if(ch.isdigit()): - px=px+ch - converted_price=float(px) - converted_price=converted_price/100 - if(converted_price < ex_price): - self.smail(url, usr_email) - else: - x = "The price is not currently below the price at which you would like to buy" - print(x) - def smail(self, name, usr_email): + try: + price = soup.find('span', id ='priceblock_ourprice').get_text().strip() + x = "The product is not discounted currently and the price is : "+price + except AttributeError: + title = "PRODUCT UNAVAILABLE" + x = title + self.driver.quit() + self.msgbox("Aleart", title, x) + exit() + self.driver.quit() + self.msgbox("Info","DISCOUNT INFO.", x) + px = "" + for ch in price: + if(ch.isdigit()): + px=px+ch + converted_price=float(px) + converted_price=converted_price/100 + if(converted_price < ex_price): + try: + self.smail() + except: + title = "Unable to Send Mail" + x = "* Check your internet Connection\n * Check you enter right email address" + self.msgbox("Warning",title, x) + else: + title = "HIGH PRICE" + x = "The price is not currently below the price at which you would like to buy" + self.msgbox("Info", title, x) + self.txtUrl.clear() + self.txtPrice.clear() + self.txtEmail.clear() + + def validator(self): + url_validate = QRegExpValidator(QRegExp(r'^.*[.amazon.in].*$')) + price_validate = QDoubleValidator(bottom=0, decimals=0) + email_validate = QRegExpValidator(QRegExp(r'^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$')) + + again = "" + self.url = self.txtUrl.toPlainText() + self.p = self.txtPrice.toPlainText() + self.usr_email = self.txtEmail.toPlainText() + + if url_validate.validate(self.url, 0)[0] != QValidator.Acceptable: + print(url_validate.validate(self.url, 0)) + again = again + "URL : url must be of www.amazon.in\n" + self.txtUrl.clear() + + if price_validate.validate(self.p, 4)[0] != QValidator.Acceptable: + print(price_validate.validate(self.p , 4)) + again = again + "Price : It must be Number without , and .\n" + self.txtPrice.clear() + + if email_validate.validate(self.usr_email, 0)[0] != QValidator.Acceptable: + print(email_validate.validate(self.usr_email, 0)) + again = again + "Email : Please enter right email\n" + self.txtEmail.clear() + return again + + def msgbox(self, condition,title, x): + font = QtGui.QFont() + font.setFamily("Bahnschrift SemiLight") + font.setPointSize(14) + + msg = QMessageBox() + if condition == "Accept": + msg.setIcon(QMessageBox.Information) + msg.setStandardButtons(QMessageBox.Close) + elif condition == "Warning": + msg.setIcon(QMessageBox.Warning) + msg.setStandardButtons(QMessageBox.Close) + elif condition == "Info": + msg.setIcon(QMessageBox.Information) + msg.setStandardButtons(QMessageBox.Close) + elif condition == "Aleart": + msg.setIcon(QMessageBox.Critical) + msg.setStandardButtons(QMessageBox.Ok) + + msg.setFont(font) + + msg.setWindowTitle("Amazon Price Tracker") + msg.setText(title) + msg.setInformativeText(x) + x = msg.exec_() + + def smail(self): server = smtplib.SMTP('smtp.gmail.com', 587) server.ehlo() server.starttls() server.ehlo() server.login('amazon.price.drop1@gmail.com', 'cjyugozvpqgukutq') SUBJECT = 'Price fell down' - TEXT = 'Check amazon link '+name+'\n \n \n\t \t -By HSB' + TEXT = 'Check amazon link '+self.url+'\n \n \n\t \t -By HSB' message = 'Subject: {}\n\n{}'.format(SUBJECT, TEXT) - server.sendmail('amazon.price.drop1@gmail.com', usr_email, message) - x = "Mail has been sent" - print(x) + try: + server.sendmail('amazon.price.drop1@gmail.com', self.usr_email, message) + except: + title = "Unable to Send Mail" + x = "* Check your internet Connection\n * Check you enter right email address" + self.msgbox("Warning",title, x) server.quit() - - - + title = "MAIL SENT" + x = "check your mail inbox" + self.msgbox("Accept", title, x) + if __name__ == '__main__': app = QApplication(sys.argv) - ex = App() + # ex = App() + w = MainWindow() + # ui = App() + # ui.setupUi(MainWindow) + w.show() sys.exit(app.exec_()) \ No newline at end of file diff --git a/Amazon_Price_Tracker/gui/amazonGUI.py b/Amazon_Price_Tracker/gui/amazonGUI.py new file mode 100644 index 0000000..d5ff2c4 --- /dev/null +++ b/Amazon_Price_Tracker/gui/amazonGUI.py @@ -0,0 +1,666 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\Pallete3.ui' +# +# Created by: PyQt5 UI code generator 5.15.2 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets +from os import path +import os + +BASE_DIR = os.getcwd() + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + self.icon_file = os.path.join(BASE_DIR, "images\\icon.png") + MainWindow.setObjectName("MainWindow") + MainWindow.resize(862, 475) + MainWindow.setMinimumSize(QtCore.QSize(862, 475)) + MainWindow.setMaximumSize(QtCore.QSize(862, 475)) + MainWindow.setWindowIcon(QtGui.QIcon(self.icon_file)) + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(245, 232, 217)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(117, 105, 90)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(157, 140, 120)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(245, 232, 217)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(245, 232, 217)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(117, 105, 90)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(157, 140, 120)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(245, 232, 217)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(117, 105, 90)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(245, 232, 217)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(117, 105, 90)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(157, 140, 120)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(117, 105, 90)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(117, 105, 90)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(235, 210, 180)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush) + MainWindow.setPalette(palette) + MainWindow.setMouseTracking(False) + MainWindow.setAutoFillBackground(True) + MainWindow.setIconSize(QtCore.QSize(30, 50)) + MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.GroupBox = QtWidgets.QGroupBox(self.centralwidget) + self.GroupBox.setGeometry(QtCore.QRect(0, 0, 861, 311)) + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(136, 27, 36)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 148, 154)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(136, 27, 36)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 148, 154)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(136, 27, 36)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush) + self.GroupBox.setPalette(palette) + font = QtGui.QFont() + font.setFamily("Bahnschrift SemiLight") + font.setPointSize(14) + self.GroupBox.setFont(font) + self.GroupBox.setAutoFillBackground(False) + self.GroupBox.setTitle("") + self.GroupBox.setObjectName("GroupBox") + self.lblUrl = QtWidgets.QLabel(self.GroupBox) + self.lblUrl.setGeometry(QtCore.QRect(50, 40, 181, 31)) + self.lblUrl.setStatusTip("") + self.lblUrl.setAutoFillBackground(False) + self.lblUrl.setTextFormat(QtCore.Qt.AutoText) + self.lblUrl.setScaledContents(False) + self.lblUrl.setIndent(5) + self.lblUrl.setObjectName("lblUrl") + self.txtUrl = QtWidgets.QTextEdit(self.GroupBox) + self.txtUrl.setGeometry(QtCore.QRect(280, 30, 511, 41)) + self.txtUrl.setTabChangesFocus(True) + self.txtUrl.setPlaceholderText("") + self.txtUrl.setObjectName("txtUrl") + self.txtUrl.setStyleSheet( + "border : solid black;" + "border-width : 1px 1px 1px 1px;" + ) + self.lblPrice = QtWidgets.QLabel(self.GroupBox) + self.lblPrice.setGeometry(QtCore.QRect(50, 120, 181, 31)) + self.lblPrice.setStatusTip("") + self.lblPrice.setAutoFillBackground(False) + self.lblPrice.setTextFormat(QtCore.Qt.AutoText) + self.lblPrice.setScaledContents(False) + self.lblPrice.setIndent(5) + self.lblPrice.setObjectName("lblPrice") + self.lblEmail = QtWidgets.QLabel(self.GroupBox) + self.lblEmail.setGeometry(QtCore.QRect(50, 200, 181, 31)) + self.lblEmail.setStatusTip("") + self.lblEmail.setAutoFillBackground(False) + self.lblEmail.setTextFormat(QtCore.Qt.AutoText) + self.lblEmail.setScaledContents(False) + self.lblEmail.setIndent(5) + self.lblEmail.setObjectName("lblEmail") + self.txtPrice = QtWidgets.QTextEdit(self.GroupBox) + self.txtPrice.setGeometry(QtCore.QRect(280, 110, 511, 41)) + self.txtPrice.setTabChangesFocus(True) + self.txtPrice.setPlaceholderText("") + self.txtPrice.setObjectName("txtPrice") + self.txtPrice.setStyleSheet( + "border : solid black;" + "border-width : 1px 1px 1px 1px;" + ) + self.txtEmail = QtWidgets.QTextEdit(self.GroupBox) + self.txtEmail.setGeometry(QtCore.QRect(280, 190, 511, 41)) + self.txtEmail.setTabChangesFocus(True) + self.txtEmail.setPlaceholderText("") + self.txtEmail.setObjectName("txtEmail") + self.txtEmail.setStyleSheet( + "border : solid black;" + "border-width : 1px 1px 1px 1px;" + ) + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setGeometry(QtCore.QRect(330, 340, 201, 51)) + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 102, 114)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 71, 84)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(136, 27, 36)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 148, 154)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 102, 114)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 71, 84)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(136, 27, 36)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 148, 154)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 102, 114)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(229, 71, 84)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(136, 27, 36)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(102, 20, 27)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(204, 41, 54)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush) + self.pushButton.setPalette(palette) + font = QtGui.QFont() + font.setFamily("Bahnschrift SemiLight") + font.setPointSize(14) + self.pushButton.setFont(font) + self.pushButton.setFocusPolicy(QtCore.Qt.WheelFocus) + self.pushButton.setAcceptDrops(False) + self.pushButton.setAutoFillBackground(True) + self.pushButton.setDefault(False) + self.pushButton.setObjectName("pushButton") + + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 862, 26)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(236, 225, 251)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(109, 98, 123)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(145, 131, 165)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(236, 225, 251)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(236, 225, 251)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(109, 98, 123)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(145, 131, 165)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(236, 225, 251)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush) + brush = QtGui.QBrush(QtGui.QColor(109, 98, 123)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush) + brush = QtGui.QBrush(QtGui.QColor(236, 225, 251)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight, brush) + brush = QtGui.QBrush(QtGui.QColor(109, 98, 123)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush) + brush = QtGui.QBrush(QtGui.QColor(145, 131, 165)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush) + brush = QtGui.QBrush(QtGui.QColor(109, 98, 123)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush) + brush = QtGui.QBrush(QtGui.QColor(109, 98, 123)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush) + brush = QtGui.QBrush(QtGui.QColor(218, 196, 247)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush) + brush = QtGui.QBrush(QtGui.QColor(255, 255, 220)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush) + self.statusbar.setPalette(palette) + font = QtGui.QFont() + font.setFamily("Segoe UI Semibold") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.statusbar.setFont(font) + self.statusbar.setAutoFillBackground(True) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Amazon Price Drop Tracker")) + MainWindow.setStatusTip(_translate("MainWindow", "GUI App ")) + + self.lblUrl.setText(_translate("MainWindow", "Enter URL :")) + self.txtUrl.setStatusTip(_translate("MainWindow", "Amazon product\'s url, like : https://www.amazon.in/...")) + self.lblPrice.setText(_translate("MainWindow", "Enter Price :")) + self.lblEmail.setText(_translate("MainWindow", "Enter Email :")) + self.txtPrice.setStatusTip(_translate("MainWindow", "Price which you seeking")) + self.txtEmail.setStatusTip(_translate("MainWindow", "Your e-mail for sending alert !!")) + self.pushButton.setStatusTip(_translate("MainWindow", "Submit request ")) + self.pushButton.setText(_translate("MainWindow", "Submit")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/images/app.png b/images/app.png index 206b4fc879bcae8af82dfcee2177787a8af9921a..c08669637c4c88da626522e66afa3ef206986acd 100644 GIT binary patch delta 18571 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%0AaQSbBFP_gv|AH>;;knMg1z*%z z0LRZNeCMd@{6BpDLp{P{70QQKz@urHTf56$(QjS86@>=!{j{nfhM zl`qE0gN90ODE>CEKlKymq_%P6(W;%BAT|hrcQU`xv)8aEvL6 z2sW=W1X~=<-v-(O6p5Z|zm_IH_1DxmaRTkjgE*jlq9()$m5o!9n32wh@~7i-&M!W? zDal!}&Fs|p&iB$*cjZ1`*NCA^Ow{-sV$=v=!lzt_Q@S1iw}Hh zh$kYjA58Xt+a@j)`0l18XKC6ar5C-IgPVpgkidoh+4(StJ8pb^YtEO`V+{{eA_V`y zEiySSNCXOw!2&<{&9CShix%-@!NCds@#(#_w6UaV$KGAi3ERDopT+8sej9*Kuh>+! zxKdF5t#bY?_`fOo%iv<6QiWgE3z#DRKmYm9r)Qpjd8S}de82nM?@lj%@$MD(X%tu0 zI6c%o>s(d-!IX{JU%}kX(f