class Register(QWidget): def __init__(self, mydb_helper): QWidget.__init__(self) self.ui = Ui_Register() self.ui.setupUi(self) self.setWindowTitle("Register") self.mydb_helper = mydb_helper def regi_submit(self): name = self.ui.name_line.text() phone = self.ui.phone_line.text() user_type = self.ui.user_type.currentText() sex = "M" if self.ui.male.isChecked( ) else "F" if self.ui.female.isChecked() else None if name and phone and user_type and sex: reader = Reader(name, sex, user_type, phone) self.mydb_helper.db_register(reader) self.close() else: self.ui.message_box.insert("null line exist!")
def regwin(self): from register import Ui_Register self.window = QtWidgets.QDialog() self.ui = Ui_Register() self.ui.setupR(self.window) self.window.show()
def open_register(self): from register import Ui_Register self.window = QtWidgets.QMainWindow() self.ui = Ui_Register() self.ui.setupUi(self.window) self.window.show()
class Ui_Reviewform(object): def setupUi(self, Reviewform, movie_title): Reviewform.setObjectName("Reviewform") Reviewform.resize(670, 600) self.centralwidget = QtWidgets.QWidget(Reviewform) self.centralwidget.setObjectName("centralwidget") type_text = QtCore.QRegExp("[a-zA-Z0-9_]*") tText = QtGui.QRegExpValidator(type_text) self.textId = QtWidgets.QLineEdit(self.centralwidget) self.textId.setGeometry(QtCore.QRect(80, 110, 221, 41)) self.textId.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.textId.setObjectName("textId") self.textId.setPlaceholderText("กรุณากรอกID") self.textId.setValidator(tText) self.textPass = QtWidgets.QLineEdit(self.centralwidget) self.textPass.setGeometry(QtCore.QRect(420, 110, 221, 41)) self.textPass.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.textPass.setObjectName("textPass") self.textPass.setPlaceholderText("กรุณากรอกPassword") self.textPass.setValidator(tText) self.textPass.setEchoMode(QtWidgets.QLineEdit.Password) self.label_3 = QtWidgets.QLabel(self.centralwidget) self.label_3.setGeometry(QtCore.QRect(430, 270, 121, 31)) self.label_3.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.label_3.setObjectName("label_3") self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) self.doubleSpinBox.setGeometry(QtCore.QRect(430, 310, 121, 31)) self.doubleSpinBox.setStyleSheet("font: 14pt \"MS Shell Dlg 2\";") self.doubleSpinBox.setObjectName("doubleSpinBox") self.doubleSpinBox.setMinimum(0) self.doubleSpinBox.setMaximum(10) self.doubleSpinBox.setDecimals(1) self.doubleSpinBox.setSingleStep(0.1) self.doubleSpinBox.setValue(0) self.pushButton_regis = QtWidgets.QPushButton(self.centralwidget) self.pushButton_regis.setGeometry(QtCore.QRect(220, 180, 161, 41)) self.pushButton_regis.setStyleSheet("font: 18pt \"MS Shell Dlg 2\";") self.pushButton_regis.setObjectName("pushButton_regis") self.pushButton_regis.clicked.connect(self.open_register) self.label_Id = QtWidgets.QLabel(self.centralwidget) self.label_Id.setGeometry(QtCore.QRect(40, 110, 41, 31)) self.label_Id.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.label_Id.setObjectName("label_Id") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(30, 270, 321, 31)) self.label_2.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.label_2.setObjectName("label_2") self.moviename = QtWidgets.QLabel(self.centralwidget) self.moviename.setGeometry(QtCore.QRect(30, 310, 350, 50)) self.moviename.setStyleSheet("font: 12pt \"MS Shell Dlg 2\";") self.moviename.setObjectName("moviename") self.moviename.setText(movie_title) self.moviename.setWordWrap(True) #send to db self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(430, 460, 141, 41)) self.pushButton.setStyleSheet("font: 18pt \"MS Shell Dlg 2\";") self.pushButton.setObjectName("pushButton") self.pushButton.clicked.connect(self.check_review) self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(240, 20, 191, 41)) self.label.setStyleSheet("font: 24pt \"MS Shell Dlg 2\";") self.label.setObjectName("label") self.label_4 = QtWidgets.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(70, 190, 141, 31)) self.label_4.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.label_4.setObjectName("label_4") self.label_Pass = QtWidgets.QLabel(self.centralwidget) self.label_Pass.setGeometry(QtCore.QRect(320, 110, 91, 31)) self.label_Pass.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.label_Pass.setObjectName("label_Pass") self.textComment = QtWidgets.QTextEdit(self.centralwidget) self.textComment.setGeometry(QtCore.QRect(30, 370, 321, 161)) self.textComment.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";") self.textComment.setObjectName("textComment") self.textComment.setPlaceholderText("กรอก คําวิจารณ์...") Reviewform.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(Reviewform) self.menubar.setGeometry(QtCore.QRect(0, 0, 670, 21)) self.menubar.setObjectName("menubar") Reviewform.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(Reviewform) self.statusbar.setObjectName("statusbar") Reviewform.setStatusBar(self.statusbar) self.retranslateUi(Reviewform) QtCore.QMetaObject.connectSlotsByName(Reviewform) #color Reviewform.setWindowIcon(QtGui.QIcon('./image/icon.png')) def retranslateUi(self, Reviewform): _translate = QtCore.QCoreApplication.translate Reviewform.setWindowTitle(_translate("Reviewform", "Reviews")) self.label_3.setText(_translate("Reviewform", "คะแนนที่ให้")) self.pushButton_regis.setText(_translate("Reviewform", "สมัครสมาชิก")) self.label_Id.setText(_translate("Reviewform", "ID")) self.label_2.setText( _translate("Reviewform", "ความรู้สึกที่มีต่อภาพยนตร์ เรื่อง")) self.pushButton.setText(_translate("Reviewform", "ส่ง")) self.label.setText(_translate("Reviewform", "Review Form")) self.label_4.setText(_translate("Reviewform", "ยังไม่เป็นสมาชิก ?")) self.label_Pass.setText(_translate("Reviewform", "Password")) def open_register(self): from register import Ui_Register self.window = QtWidgets.QMainWindow() self.ui = Ui_Register() self.ui.setupUi(self.window) self.window.show() def check_review(self): movie_title = self.moviename.text() self.event_review(movie_title) def event_review(self, movie_title): #check login id = self.textId.text().strip() password = self.textPass.text().strip() #review comment = self.textComment.toPlainText().strip() score = self.doubleSpinBox.value() conn = pymongo.MongoClient("localhost", 27017) db = conn.get_database("movies") cursor = db.users.find({"id": id}) count = cursor.count() for e in cursor: nickname = e['nickname'] passwordcollection = e['password'] #not check score if id == "" or password == "" or comment == "": msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Information) msg.setText("{0}".format("กรุณากรอกข้อมูลให้ครบ")) msg.setWindowTitle("Check Review") msg.exec_() else: if count != 0: if password == passwordcollection: scoreformat = "{0:.1f}".format(score) userdata = { "original_title": movie_title, "comment": comment, "score": float(scoreformat), "id": id, "nickname": nickname } db.review.insert_one(userdata) msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Information) msg.setText("{0}".format("เพิ่มรีวิวสำเร็จ")) msg.setWindowTitle("Success Review") msg.exec_() #self.open_moviedatawindow(movie_title) self.textId.setText("") self.textPass.setText("") self.textComment.setText("") self.doubleSpinBox.setValue(0) else: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Information) msg.setText("{0}".format("กรอก Password ผิด")) msg.setWindowTitle("Check Password") msg.exec_() else: msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Information) msg.setText("{0}".format("ไม่มี ID นี้ในระบบ")) msg.setWindowTitle("Check ID") msg.exec_() def open_moviedatawindow(self, movie_title): from moviedata import Ui_moviedataWindow as ui_moviedata self.window = QtWidgets.QMainWindow() self.ui = ui_moviedata() self.ui.setupUi(self.window, movie_title) self.window.show() def go_back(self): movie_title = self.moviename.text() self.open_moviedatawindow(movie_title)
class Ui_Login(object): def __init__(self): super(Ui_Login, self).__init__() self.user_gui = None self.response_currency = requests.get('https://api.exchangeratesapi.io/latest?base=PLN') # dane do logowania do bazy danych self.db_host = 'packy.db.elephantsql.com' self.db_user = '******' self.db_name = 'htcazxfd' self.db_port = 5432 self.db_psswd = 'UE5AaV5whqnbKyD5jL9MusNCvV1yaX7T' self.conn = None def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(387, 223) self.window = MainWindow self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.username = QtWidgets.QLabel(self.centralwidget) self.username.setGeometry(QtCore.QRect(40, 40, 141, 17)) self.username.setObjectName("username") self.result = QtWidgets.QLabel(self.centralwidget) self.result.setGeometry(QtCore.QRect(40, 120, 141, 17)) self.result.setObjectName("result") self.password = QtWidgets.QLabel(self.centralwidget) self.password.setEnabled(True) self.password.setGeometry(QtCore.QRect(40, 70, 67, 17)) self.password.setObjectName("password") self.username_input = QtWidgets.QLineEdit(self.centralwidget) self.username_input.setGeometry(QtCore.QRect(190, 40, 150, 25)) self.username_input.setFrame(True) self.username_input.setObjectName("username_input") self.password_input = QtWidgets.QLineEdit(self.centralwidget) self.password_input.setGeometry(QtCore.QRect(190, 70, 150, 25)) self.password_input.setObjectName("password_input") self.password_input.setEchoMode(QtWidgets.QLineEdit.Password) self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(200, 120, 89, 25)) self.pushButton.setObjectName("pushButton") self.register_button = QtWidgets.QPushButton(self.centralwidget) self.register_button.setGeometry(QtCore.QRect(40, 120, 111, 25)) self.register_button.setObjectName("register_button") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 387, 22)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.pushButton.clicked.connect(self.clicked_log_in) self.register_button.clicked.connect(self.register_new_user) def download_currencies(self): if self.response_currency.status_code == 200: try: self.conn = pg2.connect(host=self.db_host, database=self.db_name, user=self.db_user, password=self.db_psswd, port=self.db_port) c = self.conn.cursor() c.execute(""" SELECT * FROM currencies_download_date WHERE date_of_download = CURRENT_DATE; """) date_of_update = c.fetchone() c.close() self.conn.commit() if date_of_update is None: insert_values = '' sorted_dict = sorted(self.response_currency.json()['rates'].items(), key=lambda x: x[0]) for currency, value in sorted_dict: insert_values += "UPDATE currencies SET value_in_pln = {} WHERE name = '{}'; ".format(value, currency) date_of_download = self.response_currency.json()['date'] c = self.conn.cursor() c.execute(""" {} INSERT INTO currencies_download_date (date_of_download) VALUES ('{}'); """.format(insert_values, date_of_download)) c.close() self.conn.commit() self.conn.close() except pg2.errors.RaiseException: self.something_is_wrong() else: self.download_currencies_error() def download_currencies_error(self): self.conn = pg2.connect(host=self.db_host, database=self.db_name, user=self.db_user, password=self.db_psswd, port=self.db_port) c = self.conn.cursor() c.execute(""" SELECT date_of_download FROM currencies_download_date HAVING date_id = max(date_id); """) date_of_update = c.fetchone() c.close() self.conn.commit() self.conn.close() msg = QMessageBox() msg.setWindowTitle("Błąd") msg.setText("Błąd pobierania walut z ECB. Twoja biblioteka będzie korzystać z przeliczników walut z dnia {}".format(date_of_update)) msg.setIcon(QMessageBox.Critical) msg.setStandardButtons(QMessageBox.Ok) x = msg.exec_() def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Logowanie do biblioteki cyfrowej")) self.username.setText(_translate("MainWindow", "Nazwa użytkownika:")) self.password.setText(_translate("MainWindow", "Hasło:")) self.pushButton.setText(_translate("MainWindow", "Zaloguj")) self.register_button.setText(_translate("MainWindow", "Zarejestruj")) def clicked_log_in(self): _translate = QtCore.QCoreApplication.translate username = self.username_input.text() password = self.password_input.text() try: self.conn = pg2.connect(host=self.db_host, database=self.db_name, user=self.db_user, password=self.db_psswd, port=self.db_port) c = self.conn.cursor() c.execute("SELECT user_id FROM users WHERE username = '******' AND psswd = '{}';".format(username, password)) go = c.fetchone() if go is None: self.result.setText(_translate("MainWindow", "Błąd logowania!")) else: self.result.setText(_translate("MainWindow", "Zalogowano!")) self.open_user_gui(go[0]) c.close() self.conn.commit() self.conn.close() self.username_input.setText(_translate('MainWindow', '')) self.password_input.setText(_translate('MainWindow', '')) except pg2.errors.RaiseException: self.something_is_wrong() def open_user_gui(self, user_id): self.download_currencies() self.window_user_gui = QtWidgets.QMainWindow() self.user_gui = Ui_UserGui(user_id) self.user_gui.setupUi(self.window_user_gui) self.window_user_gui.show() self.window.close() def register_new_user(self): self.window_register = QtWidgets.QMainWindow() self.register_gui = Ui_Register() self.register_gui.setupUi(self.window_register) self.window_register.show() self.window.close() @staticmethod def something_is_wrong(): msg = QMessageBox() msg.setWindowTitle("Błąd") msg.setText("Coś poszło nie tak :(") msg.setIcon(QMessageBox.Critical) msg.setStandardButtons(QMessageBox.Abort) x = msg.exec_()
def register_new_user(self): self.window_register = QtWidgets.QMainWindow() self.register_gui = Ui_Register() self.register_gui.setupUi(self.window_register) self.window_register.show() self.window.close()
def openwindow(self): self.T_login = QtWidgets.QMainWindow() self.ui = Ui_Register() self.ui.setup3(self.T_login) self.T_login.show()
def __init__(self, mydb_helper): QWidget.__init__(self) self.ui = Ui_Register() self.ui.setupUi(self) self.setWindowTitle("Register") self.mydb_helper = mydb_helper