class UiSignUpID(UiSignUp): def setupUi(self, widget): super().setupUi(widget) self.label_id = QLabel(self.frame_main) self.label_id.setGeometry(QRect(220, 70, 70, 40)) self.label_id.setText("학번") self.edit_id = QLineEdit(self.frame_main) self.edit_id.setGeometry(QRect(310, 60, 255, 60))
class ClientRegister(QDialog): def __init__(self): super(ClientRegister, self).__init__() self.setFixedSize(300, 150) self.setWindowIcon(QIcon('icons/auth.png')) self.setWindowTitle('客户端注册') client = DbHelper.query_client() lbl_app_id = QLabel('APP ID', self) lbl_app_id.setGeometry(10, 20, 50, 26) lbl_app_id.setAlignment(Qt.AlignCenter) self.le_app_id = QLineEdit(self) self.le_app_id.setText(client[0] if client is not None else '') self.le_app_id.setGeometry(70, 20, 200, 26) self.le_app_id.setDisabled(True if client is not None else False) lbl_security = QLabel('密钥', self) lbl_security.setGeometry(10, 66, 50, 26) lbl_security.setAlignment(Qt.AlignCenter) self.le_security = QLineEdit(self) self.le_security.setEchoMode(QLineEdit.Password) self.le_security.setText(client[1] if client is not None else '') self.le_security.setGeometry(70, 66, 200, 26) self.le_security.setDisabled(True if client is not None else False) self.btn_save = QPushButton(self) self.btn_save.setText('已注册' if client is not None else '注册') self.btn_save.setDisabled(True if client is not None else False) self.btn_save.setGeometry(10, 110, 280, 30) self.btn_save.clicked.connect(self.register) def register(self): app_id = self.le_app_id.text().strip(' ') if app_id == '': self.btn_save.setText('请输入APP ID') self.le_app_id.setFocus() return security = self.le_security.text().strip(' ') if security == '': self.btn_save.setText('请输入密钥') self.le_security.setFocus() return self.btn_save.setDisabled(True) result, data = Tool.client_register(app_id, Tool.get_md5(security)) if result: DbHelper.insert_client(data, app_id, security) self.le_app_id.setDisabled(True) self.le_security.setDisabled(True) self.btn_save.setText("注册成功") elif data is not None: self.btn_save.setDisabled(False) self.btn_save.setText(data) else: self.btn_save.setDisabled(False) self.btn_save.setText("注册失败")
class Example(QWidget): def __init__(self): super().__init__() self.initUI() self.num = randint(1, 100) def initUI(self): self.setGeometry(300, 300, 300, 300) self.setWindowTitle("guess") self.setWindowIcon(QIcon('icon.jpg')) self.bt1 = QPushButton("我猜", self) self.bt1.setGeometry(115, 150, 70, 30) self.bt1.setToolTip('<b>点击这里猜游戏</b>') self.bt1.clicked.connect(self.showMessage) self.text = QLineEdit('在这里输入数字', self) self.text.selectAll() self.text.setFocus() self.text.setGeometry(80, 50, 150, 30) self.show() def showMessage(self): guessnumber = int(self.text.text()) print(self.num) if guessnumber > self.num: QMessageBox.about(self, '看结果', '猜大了!') self.text.setFocus() elif guessnumber < self.num: QMessageBox.about(self, '看结果', '猜小了!') self.text.setFocus() else: QMessageBox.about(self, '看结果', '答对了!进入下一轮!') self.num = randint(1, 100) self.text.clear() self.text.setFocus() def closeEvent(self, event): reply = QMessageBox.question(self, '确认', '确认退出吗', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore()
class UiSignUpName(UiSignUp): def setupUi(self, widget): super().setupUi(widget) self.button_left.hide() self.line_left.hide() self.label_name = QLabel(self.frame_main) self.label_name.setGeometry(QRect(220, 70, 70, 40)) self.label_name.setText("이름") self.edit_name = QLineEdit(self.frame_main) self.edit_name.setGeometry(QRect(310, 60, 250, 60)) self.edit_name.setMaxLength(20)
class Ui_EncryptDialog(object): def setupUi(self, EncryptDialog): if not EncryptDialog.objectName(): EncryptDialog.setObjectName(u"EncryptDialog") EncryptDialog.resize(400, 253) self.title = QLabel(EncryptDialog) self.title.setObjectName(u"title") self.title.setGeometry(QRect(0, 0, 401, 111)) self.title.setTextFormat(Qt.MarkdownText) self.title.setAlignment(Qt.AlignCenter) self.PasswordEdit = QLineEdit(EncryptDialog) self.PasswordEdit.setObjectName(u"PasswordEdit") self.PasswordEdit.setGeometry(QRect(182, 120, 151, 21)) self.PasswordText = QLabel(EncryptDialog) self.PasswordText.setObjectName(u"PasswordText") self.PasswordText.setGeometry(QRect(70, 120, 111, 21)) self.PasswordText.setAlignment(Qt.AlignCenter) self.EncryptButton = QPushButton(EncryptDialog) self.EncryptButton.setObjectName(u"EncryptButton") self.EncryptButton.setGeometry(QRect(80, 200, 93, 28)) self.DecryptButton = QPushButton(EncryptDialog) self.DecryptButton.setObjectName(u"DecryptButton") self.DecryptButton.setGeometry(QRect(230, 200, 93, 28)) self.retranslateUi(EncryptDialog) QMetaObject.connectSlotsByName(EncryptDialog) # setupUi def retranslateUi(self, EncryptDialog): EncryptDialog.setWindowTitle( QCoreApplication.translate( "EncryptDialog", u"\u6587\u4ef6\u52a0\u5bc6\u89e3\u5bc6\u5de5\u5177", None)) self.title.setText( QCoreApplication.translate( "EncryptDialog", u"**\u5bf9\u6587\u4ef6\u8fdb\u884c\u52a0\u5bc6\u6216\u89e3\u5bc6**", None)) self.PasswordText.setText( QCoreApplication.translate("EncryptDialog", u"\u8f93\u5165\u5bc6\u94a5\uff1a", None)) self.EncryptButton.setText( QCoreApplication.translate("EncryptDialog", u"\u52a0\u5bc6", None)) self.DecryptButton.setText( QCoreApplication.translate("EncryptDialog", u"\u89e3\u5bc6", None))
class ServerSetting(QDialog): def __init__(self): super(ServerSetting, self).__init__() self.setFixedSize(300, 150) self.setWindowIcon(QIcon('icons/server.png')) self.setWindowTitle('服务器配置') lbl_host = QLabel('域名/IP', self) lbl_host.setGeometry(10, 20, 50, 26) lbl_host.setAlignment(Qt.AlignCenter) self.le_host = QLineEdit(self) self.le_host.setText(Config.host) self.le_host.setGeometry(70, 20, 200, 26) lbl_port = QLabel('端口', self) lbl_port.setGeometry(10, 66, 50, 26) lbl_port.setAlignment(Qt.AlignCenter) self.le_port = QLineEdit(self) self.le_port.setText(Config.port) self.le_port.setGeometry(70, 66, 200, 26) self.btn_save = QPushButton(self) self.btn_save.setText('保存') self.btn_save.setGeometry(10, 110, 280, 30) self.btn_save.clicked.connect(self.save) def save(self): host = self.le_host.text().strip(' ') if host == '' or not (host.startswith("http://") or host.startswith("https://")): self.btn_save.setText('域名/IP必须以http://或https://开头') self.le_host.setFocus() return port = self.le_port.text().strip(' ') if port == '' or not port.isdigit(): self.btn_save.setText('请输入数字端口') self.le_port.setFocus() return if Config.save_server({'host': host, 'port': port}): self.close()
class LoginWindow(QMainWindow): def __init__(self, parent=None): super(LoginWindow, self).__init__(parent) def onLoginBtnClickd(self): password = self.textEdit.toPlainText() if password == "Eamon": self.w = QWidget() self.w.show() self.close() print('Login succsefully') else: print('wrong password') def setupUi(self): self.setObjectName(_fromUtf8("LoginWindow")) self.resize(526, 96) self.setStyleSheet(_fromUtf8("background-color:#333;")) self.textEdit = QLineEdit(self) self.textEdit.setGeometry(QtCore.QRect(50, 30, 311, 31)) self.textEdit.setStyleSheet(_fromUtf8("QTextEdit{color: white}")) self.textEdit.setObjectName(_fromUtf8("password")) self.pushButton = QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(390, 30, 99, 27)) self.pushButton.setStyleSheet(_fromUtf8("QPushButton {color:#FD670F}")) self.pushButton.setObjectName(_fromUtf8("login Button")) self.retranslateUi() QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.onLoginBtnClickd) QtCore.QMetaObject.connectSlotsByName(self) def retranslateUi(self): self.setWindowTitle(_translate("LoginWindow", "LoginWindow", None)) self.pushButton.setText(_translate("LoginWindow", "Login", None))
class DimensionSetting(QDialog): def __init__(self): super(DimensionSetting, self).__init__() self.setFixedSize(300, 150) self.setWindowIcon(QIcon('icons/server.png')) self.setWindowTitle('窗口设置') lbl_width = QLabel('宽度', self) lbl_width.setGeometry(10, 20, 50, 26) lbl_width.setAlignment(Qt.AlignCenter) self.le_width = QLineEdit(self) self.le_width.setText(str(Config.width)) self.le_width.setGeometry(70, 20, 200, 26) lbl_height = QLabel('高度', self) lbl_height.setGeometry(10, 66, 50, 26) lbl_height.setAlignment(Qt.AlignCenter) self.le_height = QLineEdit(self) self.le_height.setText(str(Config.height)) self.le_height.setGeometry(70, 66, 200, 26) self.btn_save = QPushButton(self) self.btn_save.setText('保存') self.btn_save.setGeometry(10, 110, 280, 30) self.btn_save.clicked.connect(self.save) def save(self): width = self.le_width.text().strip(' ') if width == '' or not width.isdigit(): self.btn_save.setText('请输入宽度') self.le_width.setFocus() return height = self.le_height.text().strip(' ') if height == '' or not height.isdigit(): self.btn_save.setText('请输入高度') self.le_height.setFocus() return if Config.save_dimension({'width': width, 'height': height}): self.close()
def definir_formulario(self): global txt_usuario, txt_senha fonte = QFont("fonts/Open_Sans/OpenSans-Regular.ttf") fonte.setPointSize(11) txt_usuario = QLineEdit(self) txt_usuario.setPlaceholderText("Login") txt_usuario.setFont(fonte) txt_usuario.setGeometry(10,240,381,41) txt_senha = QLineEdit(self) txt_senha.setPlaceholderText("Senha") txt_senha.setFont(fonte) txt_senha.setGeometry(10,320,381,41) txt_senha.setEchoMode(QLineEdit.EchoMode.Password) btn_logar = QPushButton("Ok", self) btn_logar.setFont(fonte) btn_logar.setGeometry(10,390,381,41) btn_logar.setAutoFillBackground(True) btn_logar.setStyleSheet("background-color:rgb(7,105,114);color:white;") btn_logar.clicked.connect(self.validar_login)
class UiSignUpContact(UiSignUp): def setupUi(self, widget): super().setupUi(widget) self.label_contact = QLabel(self.frame_main) self.label_contact.setGeometry(QRect(230, 40, 120, 40)) self.label_contact.setText("전화번호") self.edit_contact1 = QLineEdit(self.frame_main) self.edit_contact1.setGeometry(QRect(230, 90, 80, 50)) self.edit_contact1.setMaxLength(3) self.edit_contact2 = QLineEdit(self.frame_main) self.edit_contact2.setGeometry(QRect(350, 90, 100, 50)) self.edit_contact2.setMaxLength(4) self.edit_contact3 = QLineEdit(self.frame_main) self.edit_contact3.setGeometry(QRect(490, 90, 100, 50)) self.edit_contact3.setMaxLength(4)
class Ui_Main_Window(): def Show_Data(self): self.conn = sqlite3.connect("cv.db") self.query =('SELECT * FROM user') self.result = self.conn.execute(self.query) self.listWidget.setRowCount(0) self.listWidget.setColumnWidth( 1, 200) self.listWidget.setColumnWidth( 2, 200) self.listWidget.setColumnWidth( 3, 200) for self.row_num,self.row_data in enumerate(self.result): self.listWidget.insertRow(self.row_num) for self.col_num,self.data in enumerate(self.row_data): self.listWidget.setItem(self.row_num,self.col_num,QTableWidgetItem(str(self.data))) def setupUi(self, Main_Window): def about_fn(): about_msgbox = QMessageBox() about_msgbox.setWindowTitle("About") about_msgbox.setIcon(QMessageBox.Information) about_msgbox.setText(f"CV Collector {settings.version}") about_msgbox.setInformativeText(f''' CV Collector is an app that lets you store your CVs in a secure and lightweight sqlite3 database. {settings.special_text}. ''') about_msgbox.setStandardButtons(QMessageBox.Close) about_msgbox.exec_() font1 = QFont("Roboto", 20) font2 = QFont("Roboto", 16) Main_Window.setObjectName("Main_Window") Main_Window.resize(700, 535) Main_Window.setFixedSize(Main_Window.size()) self.centralwidget = QWidget(Main_Window) self.centralwidget.setObjectName("centralwidget") self.search = QLineEdit(self.centralwidget) self.search.setGeometry(QRect(60, 30, 460, 50)) self.search.setFont(font1) self.search.setPlaceholderText("Search..") menuBar = QMenuBar(self.centralwidget) Help = menuBar.addMenu("Help") About = Help.addAction("About") About.triggered.connect(about_fn) self.addBtn = QPushButton(self.centralwidget) self.addBtn.setGeometry(QRect(20, 90, 191, 41)) self.addBtn.setObjectName("addBtn") self.deleteBtn = QPushButton(self.centralwidget) self.deleteBtn.setGeometry(QRect(245, 90, 191, 41)) self.deleteBtn.setObjectName("deleteBtn") self.showBtn = QPushButton(self.centralwidget) self.showBtn.setGeometry(QRect(470, 90, 191, 41)) self.showBtn.setObjectName("showBtn") self.listWidget = QTableWidget(self.centralwidget) self.listWidget.setGeometry(QRect(20, 150, 661, 350)) self.listWidget.setRowCount(20) self.listWidget.setColumnCount(4) self.listWidget.setObjectName("listWidget") self.listWidget.hideColumn(0) horizontal_names = ('hidden', 'CV Name', 'CV Filename', 'Date') self.listWidget.setHorizontalHeaderLabels(horizontal_names) self.listWidget.setColumnWidth( 1, 200) self.listWidget.setColumnWidth( 2, 200) self.listWidget.setColumnWidth( 3, 200) self.listWidget.setFont(font2) def initialize(): self.Show_Data() initialize() def search_fn(): columnOfInterest = 1 valueOfInterest = self.search.text() for rowIndex in range(self.listWidget.rowCount()): item = self.listWidget.item(rowIndex, columnOfInterest) if self.search.text() in item.text(): self.listWidget.setRowHidden(rowIndex, False) else: self.listWidget.setRowHidden(rowIndex, True) self.searchBtn = QPushButton(self.centralwidget) self.searchBtn.setGeometry(QRect(530, 30, 100, 50)) self.searchBtn.setObjectName("addBtn") self.searchBtn.clicked.connect(search_fn) Main_Window.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(Main_Window) self.menubar.setGeometry(QRect(0, 0, 723, 22)) self.menubar.setObjectName("menubar") Main_Window.setMenuBar(self.menubar) self.statusbar = QStatusBar(Main_Window) self.statusbar.setObjectName("statusbar") Main_Window.setStatusBar(self.statusbar) self.retranslateUi(Main_Window) QMetaObject.connectSlotsByName(Main_Window) self.showBtn.clicked.connect(self.Show_Data) self.addBtn.clicked.connect(self.Add) self.deleteBtn.clicked.connect(self.Delete) def retranslateUi(self, Main_Window): _translate = QCoreApplication.translate Main_Window.setWindowTitle(_translate("Main_Window", "CV Collector")) self.addBtn.setText(_translate("Main_Window", "Add CV")) self.deleteBtn.setText(_translate("Main_Window", "Delete CV")) self.showBtn.setText(_translate("Main_Window", "Update List")) self.searchBtn.setText(_translate("Main_Window", "search")) def Add(self): self.Add_Window = QMainWindow() self.Add_Window_Ui = add.Ui_Add_Window() self.Add_Window_Ui.setupUi(self.Add_Window) self.Add_Window.show() def Delete(self): self.Delete_Window = QMainWindow() self.Delete_Window_Ui = delete.Ui_Delete_Window() self.Delete_Window_Ui.setupUi(self.Delete_Window) self.Delete_Window.show()
class Weather(QMainWindow): def __init__(self): super(Weather, self).__init__() self.resize(530, 414) self.setMinimumSize(QSize(530, 414)) self.setMaximumSize(QSize(530, 414)) self.setGeometry(800, 130, 530, 414) self.setFont(QFont('Roboto', 12)) self.setWindowIcon(QIcon('arti.PNG')) self.setWindowTitle('Weather') palette = QPalette() palette.setColor(palette.Window, QColor('#000000')) palette.setColor(palette.WindowText, QColor('#FFFFFF')) palette.setColor(palette.Button, QColor("#00FF00")) palette.setColor(palette.ButtonText, QColor("#000000")) self.setPalette(palette) self.menubar = QMenuBar(self) self.menubar.setGeometry(0, 0, 682, 21) self.menubar.setFont(QFont('Roboto', 10)) self.date_menu = QMenu(self.menubar) self.date_menu.setTitle(str(datetime.now().strftime('%d-%m-%Y'))) self.setMenuBar(self.menubar) self.menubar.addAction(self.date_menu.menuAction()) self.city = QLineEdit(self) self.city.setObjectName(u"city") self.city.setGeometry(QRect(10, 30, 511, 41)) self.city.setMinimumSize(QSize(511, 41)) self.city.setMaximumSize(QSize(511, 41)) self.city.setPlaceholderText( 'Enter the city name of which you want to view the weather.') self.city.setToolTip( 'Enter the city name of which you want to view the weather.') self.celsius = QLabel(self) self.celsius.setGeometry(QRect(10, 90, 491, 31)) self.fahrenheit = QLabel(self) self.fahrenheit.setGeometry(QRect(10, 140, 491, 31)) self.kelvin = QLabel(self) self.kelvin.setGeometry(QRect(10, 190, 491, 31)) self.pressure = QLabel(self) self.pressure.setGeometry(QRect(10, 240, 491, 31)) self.humidity = QLabel(self) self.humidity.setGeometry(QRect(10, 290, 491, 31)) self.description = QLabel(self) self.description.setGeometry(QRect(10, 340, 491, 31)) speak('Welcome to the Weather.') self.city.returnPressed.connect(lambda: self.weather()) self.city.returnPressed.connect(lambda: self.clear_text()) def clear_text(self): self.city.clear() def weather(self): api_key = '28c2103624ed3df9e6093bb50632748b' base_url = "http://api.openweathermap.org/data/2.5/weather?" city_name = self.city.text() complete_url = base_url + "appid=" + api_key + "&q=" + city_name response = requests.get(complete_url) x = response.json() if x['cod'] != '404': y = x['main'] current_temperature = y['temp'] current_pressure = y['pressure'] current_humidity = y['humidity'] z = x['weather'] weather_description = z[0]['description'] self.celsius.setText('Temperature (in celsius unit) = ' + str(current_temperature - 273)[0:5]) time.sleep(0.5) self.fahrenheit.setText('Temperature (in fahrenheit unit) = ' + str((current_temperature - 273) * 9 / 5 + 32)[0:5]) time.sleep(0.5) self.kelvin.setText('Temperature (in kelvin unit) = ' + str(current_temperature)[0:5]) time.sleep(0.5) self.pressure.setText('Atmospheric pressure (in hPa unit) = ' + str(current_pressure)) time.sleep(0.5) self.humidity.setText('Humidity (in percentage) = ' + str(current_humidity)) time.sleep(0.5) self.description.setText('Description = ' + str(weather_description)) else: speak('City Not Found. Please try again.')
class Ui_Delete_Window(object): def Show_Data(self): self.conn = sqlite3.connect("cv.db") self.query = ('SELECT * FROM user') self.result = self.conn.execute(self.query) for self.row_num, self.row_data in enumerate(self.result): self.tableWidget.insertRow(self.row_num) for self.col_num, self.data in enumerate(self.row_data): self.tableWidget.setItem(self.row_num, self.col_num, QTableWidgetItem(str(self.data))) def setupUi(self, Delete_Window): font2 = QFont("Roboto", 16) Delete_Window.setObjectName("Delete_Window") Delete_Window.resize(685, 500) Delete_Window.setFixedSize(Delete_Window.size()) self.centralwidget = QWidget(Delete_Window) self.centralwidget.setObjectName("centralwidget") self.tableWidget = QTableWidget(self.centralwidget) self.tableWidget.setGeometry(QRect(10, 20, 661, 181)) self.tableWidget.setRowCount(10) self.tableWidget.setColumnCount(4) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setRowCount(0) self.tableWidget.setColumnCount(4) self.tableWidget.setObjectName("listWidget") self.tableWidget.hideColumn(0) self.tableWidget.setColumnWidth(1, 200) self.tableWidget.setColumnWidth(2, 200) self.tableWidget.setColumnWidth(3, 200) horizontal_names = ('hidden', 'CV Name', 'CV Filename', 'Date') self.tableWidget.setHorizontalHeaderLabels(horizontal_names) self.tableWidget.setFont(font2) self.numberEdit = QLineEdit(self.centralwidget) self.numberEdit.setGeometry(QRect(20, 240, 651, 41)) self.numberEdit.setObjectName("numberEdit") self.deleteBtn = QPushButton(self.centralwidget) self.deleteBtn.setGeometry(QRect(20, 300, 651, 51)) self.deleteBtn.setObjectName("deleteBtn") self.delete_allBtn = QPushButton(self.centralwidget) self.delete_allBtn.setGeometry(QRect(20, 420, 651, 51)) self.delete_allBtn.setObjectName("delete_allBtn") self.delete_allBtn.clicked.connect(self.Delete_All) self.delete_allBtn.setStyleSheet("background-color: red; color: white") Delete_Window.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(Delete_Window) self.menubar.setGeometry(QRect(0, 0, 685, 22)) self.menubar.setObjectName("menubar") Delete_Window.setMenuBar(self.menubar) self.statusbar = QStatusBar(Delete_Window) self.statusbar.setObjectName("statusbar") Delete_Window.setStatusBar(self.statusbar) self.retranslateUi(Delete_Window) QMetaObject.connectSlotsByName(Delete_Window) self.Show_Data() self.deleteBtn.clicked.connect(self.Delete) def retranslateUi(self, Delete_Window): _translate = QCoreApplication.translate Delete_Window.setWindowTitle(_translate("Delete_Window", "Delete")) self.numberEdit.setPlaceholderText( _translate("Delete_Window", "Enter the number of an entry you want to delete.")) self.deleteBtn.setText(_translate("Delete_Window", "Delete")) self.delete_allBtn.setText(_translate("Delete_Window", "Delete All")) def Delete(self): self.number = int(self.numberEdit.text()) deleted_msgbox = QMessageBox() deleted_msgbox.setIcon(QMessageBox.Information) #deleted_msgbox.setWindowTitle("") deleted_msgbox.setText(f"You're about to delete entry {self.number}") deleted_msgbox.setInformativeText( "You can't reverse this, are you sure you want to proceed?") deleted_msgbox.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel) result = deleted_msgbox.exec_() if result == QMessageBox.Yes: self.conn = sqlite3.connect("cv.db") self.cur = self.conn.cursor() self.query = ('DELETE FROM user WHERE id = "%s"' % self.number) self.cur.execute(self.query) self.conn.commit() def Delete_All(self): deleted_all_msgbox = QMessageBox() deleted_all_msgbox.setIcon(QMessageBox.Information) deleted_all_msgbox.setWindowTitle("Caution") deleted_all_msgbox.setText( "You're about to delete All of your entries.") deleted_all_msgbox.setInformativeText( "You can't reverse this, are you sure you want to proceed?") deleted_all_msgbox.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel) result = deleted_all_msgbox.exec_() if result == QMessageBox.Yes: self.conn = sqlite3.connect("cv.db") self.cur = self.conn.cursor() self.cur.execute('DELETE FROM user', ) self.conn.commit() print("all deleted.")
class MainFrame(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): # Define buttons # Button to calculate lunar dates self.calculate_lunar = QPushButton('음력날짜 계산', self) self.calculate_lunar.clicked.connect(self.calculate_lunar_date) self.calculate_lunar.setGeometry(20, 260, 130, 35) self.calculate_lunar.setStatusTip('음력 날짜를 계산합니다.') self.calculate_lunar.setShortcut('Return') # Button to save ICS file to local directory self.ICS_save_button = QPushButton('ICS 파일 저장', self) self.ICS_save_button.clicked.connect(self.create_ics_file) self.ICS_save_button.setGeometry(175, 260, 130, 35) self.ICS_save_button.setStatusTip('ICS 파일을 컴퓨터에 저장합니다.') # Define labels # Define label for lunar date to convert lunar_date_text = QLabel(self) lunar_date_text.setText('계산할 음력 날짜') lunar_date_text.setGeometry(25, 15, 240, 25) # Define label for name of event event_name_text = QLabel(self) event_name_text.setText('이벤트 이름 입력') event_name_text.setGeometry(25, 50, 240, 25) # Define label for repetition event_name_text = QLabel(self) event_name_text.setText('몇년치나 할까요?') event_name_text.setGeometry(25, 85, 240, 25) # Define ListWidget to display results self.result_console = QListWidget(self) self.result_console.setGeometry(25, 118, 275, 133) self.result_console.setStatusTip('올해부터 매년 양력날짜가 출력됩니다.') # Define user input areas # Define lunar date to convert to solar date self.user_date_input = QLineEdit(self) self.user_date_input.setGeometry(180, 15, 120, 27) self.user_date_input.setAlignment(Qt.AlignCenter) self.user_date_input.setPlaceholderText('YYYYMMDD') self.user_date_input.setStatusTip('날짜를 YYYYMMDD로 입력하세요.') # Define name of event to use in ICS file self.user_event_name = QLineEdit(self) self.user_event_name.setGeometry(180, 50, 120, 27) self.user_event_name.setAlignment(Qt.AlignCenter) self.user_event_name.setPlaceholderText('이벤트 이름') self.user_event_name.setStatusTip('이벤트 이름을 입력하세요.') # Define number of years to convert self.user_repetition = QLineEdit(self) self.user_repetition.setGeometry(180, 84, 120, 27) self.user_repetition.setAlignment(Qt.AlignCenter) self.user_repetition.setText('10') self.user_repetition.setStatusTip('생성할 햇수를 입력하세요.') # Define size of main window self.setGeometry(200, 320, 325, 330) self.setWindowTitle('날짜') self.statusBar() self.show() # Define functions # Function to parse lunar date from openAPI website using user input def calculate_lunar_date(self): if len(self.user_date_input.text()) != 8: reply = QMessageBox.question(self, 'Error', "YYYYMMDD로 정확한 날짜를 입력해 주십시오.", QMessageBox.Close) return url = 'http://apis.data.go.kr/B090041/openapi/service/LrsrCldInfoService/getSolCalInfo' personal_key = 'UrEdHGIOCJr600RsRQ%2BnoL2wma3HT9JXmYn0uhHwmxImsnE2GHKYfn1RUfiEK9RIHXPJ3FBRnONxXMjplU3%2F7g%3D%3D' lunar_input = self.user_date_input.text() lunar_month = lunar_input[4:6] lunar_day = lunar_input[6:] repeat = int(self.user_repetition.text()) + 1 for i in range(0, repeat): lunar_year = int(lunar_input[:4]) + int(i) # Limit search at lunar year 2050. if lunar_year > 2050: break query_params = '?lunYear={}&lunMonth={}&lunDay={}&ServiceKey={}'.format( lunar_year, lunar_month, lunar_day, personal_key) session = XMLSession() r = session.get(url + query_params) solar_day = r.xml.xpath('//solDay', first=True).text solar_month = r.xml.xpath('//solMonth', first=True).text solar_year = r.xml.xpath('//solYear', first=True).text solar_week = r.xml.xpath('//solWeek', first=True).text solar_date_text = ' {}년 {}월 {}일 {}요일 '.format( solar_year, solar_month, solar_day, solar_week) QListWidgetItem(solar_date_text, self.result_console) def create_ics_file(self): event_name = self.user_event_name.text() ics_content = 'BEGIN:VCALENDAR\nVERSION:2.0\nCALSCALE:GREGORIAN\nBEGIN:VTIMEZONE\nTZID:Asia/Tokyo\n' \ 'TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tokyo\nX-LIC-LOCATION:Asia/Tokyo\n' \ 'BEGIN:STANDARD\nTZOFFSETFROM:+0900\nTZOFFSETTO:+0900\nTZNAME:JST\n' \ 'DTSTART:19700101T000000\nEND:STANDARD\nEND:VTIMEZONE\n' if len(self.user_event_name.text()) == 0: reply = QMessageBox.question(self, 'Error', "이벤트 이름을 입력해 주십시오.", QMessageBox.Close) return elif self.result_console.count() == 0: reply = QMessageBox.question(self, 'Error', "날짜 계산을 먼저 해주십시오.", QMessageBox.Close) return # Iterate through QListWidget items: https://stackoverflow.com/a/34479509 converted_dates = [ str(self.result_console.item(i).text()) for i in range(self.result_console.count()) ] for i in converted_dates: # Extract digits from string: https://stackoverflow.com/a/26825833 date_string = (''.join(filter(str.isdigit, i))) event_string = 'BEGIN:VEVENT\nDTSTAMP:20180802T115053z\nDTSTART;TZID="Asia/Tokyo":{0}T120000' \ '\nDTEND;TZID="Asia/Tokyo":{0}T120000\nSUMMARY:{1}\nBEGIN:VALARM\n' \ 'TRIGGER:-PT14H\nREPEAT:1\nACTION:DISPLAY\nDESCRIPTION:Reminder\nEND:VALARM\nEND:VEVENT\n' ics_content += event_string.format(date_string, event_name) ics_content += 'END:VCALENDAR' # This program cannot read existing .ics files, so if user creates a new ics event with existing file name, # the program would crash. new_ics = open(event_name.replace(' ', '') + '.ics', 'w') new_ics.write(ics_content) new_ics.close() success = QMessageBox.question(self, 'Success', "ICS 파일 생성 완료!", QMessageBox.Close)
class ExtraWindow(QtWidgets.QDialog): def __init__(self, parent, edit=False, path_c=None): super().__init__(parent) self.meta = None if edit: self.path_c = path_c self.meta = MetaDataR(self.path_c.get_metadata_path()) else: self.path_c = None self.meta = _make_blank_metadata() #self.path_c = f'podaci{os.path.sep}__podaci\saimenom.csv #self.load_data("podaci\naziv_tabele.json") #print(self.meta) #print(self.path_c) #self.path_c = f'podaci{os.path.sep}__' tu treba da bude ono sto je korisnik nazvao tabelu,podaci\studenti # napraviti funkciju koja proverava da li su dve putanje iste is_save postoji #napraviti funkciju koja prolazi kroz odabrani folder(podaci) hard cod i za svaki file u njemu proverava # da li je isti kao fajl koji smo kreirali self.extra_table = ExtraTable(self) #self.extra_table.cellClicked.connect(self.extra_table.current_column_name) self.setWindowTitle("customer - Table") self.setWindowIcon(QtGui.QIcon("assets/img/icons8-edit-file-64.png")) self.resize(662, 438) self.save_table_changes = QPushButton("Save table changes", self) self.save_table_changes.setGeometry(390, 290, 251, 31) self.add_table_main = QPushButton("Add Column ", self) self.add_table_main.setGeometry(390, 260, 251, 28) self.add_table_main.clicked.connect(self.add_column) self.delet_table_column = QPushButton("Delet table column", self) self.delet_table_column.setGeometry(390, 330, 251, 31) self.delet_table_column.clicked.connect(self.remove_row) self.not_null_box = QCheckBox("Not Null", self) self.not_null_box.setGeometry(220, 330, 81, 61) self.colm_name_label = QLabel("Column Name:", self) self.colm_name_label.setGeometry(10, 250, 111, 41) self.table_name_label_2 = QLabel("Table Name", self) self.table_name_label_2.setGeometry(10, 10, 91, 21) self.comn_name_line_edit = QLineEdit(self) self.comn_name_line_edit.setGeometry(110, 260, 151, 22) #self.comn_name_line_edit.clicked.connect(self.extra_table.current_column_name) self.data_type_label = QLabel("Data Type", self) self.data_type_label.setGeometry(10, 300, 61, 16) self.data_type_line_edit = QLineEdit(self) self.data_type_line_edit.setGeometry(110, 300, 151, 22) self.table_name_line_edit = QLineEdit(self) self.table_name_line_edit.setGeometry(110, 10, 391, 22) self.foreign_key_box = QCheckBox("Foreign Key", self) self.foreign_key_box.setGeometry(120, 330, 91, 61) self.primary_key_box = QCheckBox("Primary Key", self) self.primary_key_box.setGeometry(20, 330, 111, 61) self.frame = QFrame(self) self.frame.setGeometry(0, 390, 661, 51) self.frame.setStyleSheet(u"background-color: rgb(45,45,45);") self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.cancel_button = QPushButton("Cancel button", self.frame) self.cancel_button.setGeometry(550, 10, 111, 28) self.cancel_button.setStyleSheet( u"background-color: rgb(255,255,255);") self.add_table_button = QPushButton("Add table", self.frame) self.add_table_button.setGeometry(442, 10, 101, 28) self.add_table_button.setStyleSheet( u"background-color: rgb(255,255,255);") #self.tables() self.show() def add_column_infomation(self): self.meta["headers"].append({ "name": self.comn_name_line_edit.text(), "is_primary": self.primary_key_box.isChecked(), "is_foreign_key": self.foreign_key_box.isChecked(), "data_type": self.data_type_line_edit.text(), "predefined_values": "nesta", "not_null": self.not_null_box.isChecked(), }) #iz tabele treba da se poziva row sa tim podacima def current_row(self): return self.extra_table.currentRow() #save column changes #kada korisnik kilkne na kolonu koja vec postoji nje podaci treba da se otvore u # input poljima ako je korisnik stavio neku izmjenu u tim poljima u tabeli treba da se sacuvaju te izmene #funkcija koja ce za objekat iz metaheadersa da ubacuje u tabelu def add_column(self): self.add_column_infomation() #headers = self.get_headers_names() row = self.extra_table.rowCount() self.extra_table.insertRow(row) #print(headers) self.extra_table.setItem( row, 0, QtWidgets.QTableWidgetItem(str(self.meta["headers"][row]["name"]))) self.extra_table.setItem( row, 1, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["data_type"]))) self.extra_table.setItem( row, 2, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["is_primary"]))) self.extra_table.setItem( row, 3, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["is_foreign_key"]))) self.extra_table.setItem( row, 4, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["not_null"]))) self.extra_table.setItem( row, 5, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["predefined_values"]))) #proveri da li su sve vrednosti stavljenje name i type # moram da ucitam blanko podatke koji su prazni nemaju nista, # preko putanje hard kodovati prilikom sava def remove_row(self): indexes = self.extra_table.selectionModel().selectedRows() if len(indexes) != 1: self.show_popup() return self.extra_table.removeRow(indexes[0].row()) def show_popup(self): msg = QMessageBox() msg.setWindowTitle("Fatal Error") msg.setText("Post Error! error code = 503") msg.setIcon(QMessageBox.Critical) msg.setStandardButtons(QMessageBox.Ok) msg.setInformativeText("Pleas select a row you want to delet!") msg.buttonClicked.connect(self.popup_button) execute = msg.exec_() def popup_button(self, i): print(i.text())
class ClientLogin(QDialog): def __init__(self): super(ClientLogin, self).__init__() self.setFixedSize(300, 180) self.setWindowIcon(QIcon('icons/auth.png')) self.setWindowTitle('服务连接') client = DbHelper.query_client() lbl_app_id = QLabel('APP ID', self) lbl_app_id.setGeometry(10, 20, 50, 26) lbl_app_id.setAlignment(Qt.AlignCenter) self.le_app_id = QLineEdit(self) self.le_app_id.setText(client[1] if client is not None else '') self.le_app_id.setGeometry(70, 20, 200, 26) self.le_app_id.setDisabled(True if client is not None else False) lbl_security = QLabel('密钥', self) lbl_security.setGeometry(10, 66, 50, 26) lbl_security.setAlignment(Qt.AlignCenter) self.le_security = QLineEdit(self) self.le_security.setEchoMode(QLineEdit.Password) self.le_security.setText(client[2] if client is not None else '') self.le_security.setGeometry(70, 66, 200, 26) self.le_security.setDisabled(True if client is not None else False) self.btn_login = QPushButton(self) self.btn_login.setText('已连接' if client is not None else '连接') self.btn_login.setDisabled(True if client is not None else False) self.btn_login.setGeometry(10, 110, 280, 30) self.btn_login.clicked.connect(self.login) self.btn_logout = QPushButton(self) self.btn_logout.setText('注销' if client is not None else '未连接') self.btn_logout.setDisabled(True if client is None else False) self.btn_logout.setGeometry(10, 140, 280, 30) self.btn_logout.clicked.connect(self.logout) def login(self): app_id = self.le_app_id.text().strip(' ') if app_id == '': self.btn_login.setText('请输入APP ID') self.le_app_id.setFocus() return security = self.le_security.text().strip(' ') if security == '': self.btn_login.setText('请输入密钥') self.le_security.setFocus() return self.btn_login.setDisabled(True) result, data = Tool.client_login(app_id, Tool.get_md5(security)) if result: DbHelper.insert_client(data, app_id, security) self.btn_login.setText("已连接") self.le_app_id.setDisabled(True) self.le_security.setDisabled(True) self.btn_logout.setDisabled(False) self.btn_logout.setText("注销") self.btn_logout.setFocus() else: self.btn_login.setDisabled(False) self.btn_login.setText("APP ID或者密钥不正确") def logout(self): self.btn_logout.setDisabled(True) self.btn_logout.setText("未连接") self.btn_login.setDisabled(False) self.btn_login.setText("连接") self.le_app_id.setDisabled(False) self.le_security.setDisabled(False) DbHelper.delete_client()
class ExtraWindow(QtWidgets.QDialog): def __init__(self, parent): super().__init__(parent) self.setWindowTitle("customer - Table") self.setWindowIcon(QtGui.QIcon("assets/img/icons8-edit-file-64.png")) self.resize(662, 438) self.save_talble_changes = QPushButton("Save table changes", self) self.save_talble_changes.setGeometry(390, 290, 251, 31) self.add_table_main = QPushButton("Add Column ", self) self.add_table_main.setGeometry(390, 260, 251, 28) #self.add_table_main.clicked.connect(self.add_column) self.delet_table_column = QPushButton("Delet table column", self) self.delet_table_column.setGeometry(390, 330, 251, 31) self.not_null_box = QCheckBox("Not Null", self) self.not_null_box.setGeometry(220, 330, 81, 61) self.colm_name_label = QLabel("Column Name:", self) self.colm_name_label.setGeometry(10, 250, 111, 41) self.table_name_label_2 = QLabel("Table Name", self) self.table_name_label_2.setGeometry(10, 10, 91, 21) self.comn_name_line_edit = QLineEdit(self) self.comn_name_line_edit.setGeometry(110, 260, 151, 22) self.data_type_label = QLabel("Data Type", self) self.data_type_label.setGeometry(10, 300, 61, 16) self.data_type_line_edit = QLineEdit(self) self.data_type_line_edit.setGeometry(110, 300, 151, 22) self.table_name_line_edit = QLineEdit(self) self.table_name_line_edit.setGeometry(110, 10, 391, 22) self.foreign_key_box = QCheckBox("Foreign Key", self) self.foreign_key_box.setGeometry(120, 330, 91, 61) self.primary_key_box = QCheckBox("Primary Key", self) self.primary_key_box.setGeometry(20, 330, 111, 61) self.table_widget = QTableWidget(self) if (self.table_widget.columnCount() < 6): self.table_widget.setColumnCount(6) __qtablewidgetitem = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(1, __qtablewidgetitem1) __qtablewidgetitem2 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(2, __qtablewidgetitem2) __qtablewidgetitem3 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(3, __qtablewidgetitem3) __qtablewidgetitem4 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(4, __qtablewidgetitem4) __qtablewidgetitem5 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(5, __qtablewidgetitem5) self.table_widget.setGeometry(0, 40, 661, 201) self.table_widget.setColumnWidth(2, 85) self.table_widget.setColumnWidth(3, 85) self.table_widget.setColumnWidth(4, 85) self.frame = QFrame(self) self.frame.setGeometry(0, 390, 661, 51) self.frame.setStyleSheet(u"background-color: rgb(45,45,45);") self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.cancel_button = QPushButton("Cancel button", self.frame) self.cancel_button.setGeometry(550, 10, 111, 28) self.cancel_button.setStyleSheet( u"background-color: rgb(255,255,255);") self.add_table_button = QPushButton("Add table", self.frame) self.add_table_button.setGeometry(442, 10, 101, 28) self.add_table_button.setStyleSheet( u"background-color: rgb(255,255,255);") self.tables() self.show() def tables(self): ''' self.setWindowTitle(QCoreApplication.translate("ExtraWindow", u"Dialog", None)) self.save_talble_changes.setText(QCoreApplication.translate("ExtraWindow", u"Save Table Changes", None)) self.add_table_main.setText(QCoreApplication.translate("ExtraWindow", u"Add Table", None)) self.delet_table_column.setText(QCoreApplication.translate("ExtraWindow", u"Delete Table Column", None)) self.not_null_box.setText(QCoreApplication.translate("ExtraWindow", u"Not null", None)) self.colm_name_label.setText(QCoreApplication.translate("ExtraWindow", u"Colomn Name", None)) self.table_name_label_2.setText(QCoreApplication.translate("ExtraWindow", u"Table Name", None)) self.data_type_label.setText(QCoreApplication.translate("ExtraWindow", u"Data Type", None)) self.foreign_key_box.setText(QCoreApplication.translate("ExtraWindow", u"Foreign key", None)) self.primary_key_box.setText(QCoreApplication.translate("ExtraWindow", u"Primary key", None)) ''' ___qtablewidgetitem = self.table_widget.horizontalHeaderItem(0) ___qtablewidgetitem.setText( QCoreApplication.translate("ExtraWindow", u"Column Name", None)) ___qtablewidgetitem1 = self.table_widget.horizontalHeaderItem(1) ___qtablewidgetitem1.setText( QCoreApplication.translate("ExtraWindow", u"Data Type", None)) ___qtablewidgetitem2 = self.table_widget.horizontalHeaderItem(2) ___qtablewidgetitem2.setText( QCoreApplication.translate("ExtraWindow", u"Primary key", None)) ___qtablewidgetitem3 = self.table_widget.horizontalHeaderItem(3) ___qtablewidgetitem3.setText( QCoreApplication.translate("ExtraWindow", u"Foreign key", None)) ___qtablewidgetitem4 = self.table_widget.horizontalHeaderItem(4) ___qtablewidgetitem4.setText( QCoreApplication.translate("ExtraWindow", u"Not Null", None)) ___qtablewidgetitem5 = self.table_widget.horizontalHeaderItem(5) ___qtablewidgetitem5.setText( QCoreApplication.translate("ExtraWindow", u"Default", None)) '''
class Ui_MainWindow(object): def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName("MainWindow") MainWindow.resize(1050, 700) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.scrollArea = QScrollArea(MainWindow) self.scrollArea.setObjectName("scrollArea") self.scrollArea.setGeometry(QRect(10, 10, 1030, 530)) self.scrollArea.setWidgetResizable(True) self.scrollAreaWidgetContents = QWidget() self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 1030, 530)) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.tableWidget = QTableWidget(self.scrollAreaWidgetContents) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setGeometry(QRect(0, 0, 1030, 530)) self.tableWidget.setAutoFillBackground(True) self.tableWidget.horizontalHeader().setCascadingSectionResizes(True) self.tableWidget.setColumnCount(7) self.column_label = ['№', 'name', 'fname', 'phone', 'uid', 'nik', 'wo'] self.tableWidget.setHorizontalHeaderLabels(self.column_label) self.PathFile = QLineEdit(self.centralwidget) self.PathFile.setGeometry(QRect(200, 10, 831, 90)) self.PathFile.setObjectName("PathFile") self.progressBar = QProgressBar(MainWindow) self.progressBar.setObjectName("progressBar") self.progressBar.setGeometry(QRect(400, 650, 640, 28)) self.progressBar.setProperty("value", 0) self.comboBox = QComboBox(MainWindow) self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.setObjectName("comboBox") self.comboBox.setGeometry(QRect(20, 610, 321, 28)) self.comboBox.setEditable(False) self.comboBox.setDuplicatesEnabled(False) self.comboBox_2 = QComboBox(self.centralwidget) self.comboBox_2.setGeometry(QRect(20, 570, 321, 28)) self.comboBox_2.setObjectName("comboBox2") self.comboBox_2.addItem("") self.saveButt = QPushButton(self.centralwidget) self.saveButt.setGeometry(QRect(560, 610, 160, 28)) self.saveButt.setObjectName("saveButt") self.AnalizButt = QPushButton(self.centralwidget) self.AnalizButt.setGeometry(QRect(400, 610, 160, 28)) self.AnalizButt.setObjectName("AnalizButt") self.UpdateButt = QPushButton(self.centralwidget) self.UpdateButt.setGeometry(QRect(720, 610, 160, 28)) self.UpdateButt.setObjectName("updateButt") self.DeleteButt = QPushButton(self.centralwidget) self.DeleteButt.setGeometry(QRect(880, 610, 160, 28)) self.DeleteButt.setObjectName("DeleteButt") self.OpenBox = QComboBox(MainWindow) self.OpenBox.addItem("") self.OpenBox.addItem("") self.OpenBox.addItem("") self.OpenBox.setObjectName("OpenBox") self.OpenBox.setGeometry(QRect(400, 570, 160, 30)) self.OpenBox.setEditable(False) self.OpenBox.setDuplicatesEnabled(False) self.change_cbButt = QPushButton(self.centralwidget) self.change_cbButt.setObjectName("change_cbButt") self.change_cbButt.setGeometry(QRect(20, 650, 321, 28)) self.OpenBox.raise_() self.UpdateButt.raise_() self.AnalizButt.raise_() self.DeleteButt.raise_() self.change_cbButt.raise_() self.progressBar.raise_() self.PathFile.raise_() self.tableWidget.raise_() self.saveButt.raise_() self.comboBox.raise_() self.comboBox_2.raise_() MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QCoreApplication.translate("MainWindow", "MainWindow", None)) #if QT_CONFIG(accessibility) self.tableWidget.setAccessibleName("") #endif // QT_CONFIG(accessibility) self.comboBox.setItemText( 0, QCoreApplication.translate("MainWindow", "Поиск по ...", None)) self.comboBox.setItemText( 1, QCoreApplication.translate("MainWindow", "Поиск по никнейму", None)) self.comboBox.setItemText( 2, QCoreApplication.translate("MainWindow", "Поиск по номеру телефона", None)) self.comboBox.setItemText( 3, QCoreApplication.translate("MainWindow", "Поиск по фамилии", None)) self.comboBox.setCurrentText( QCoreApplication.translate( "MainWindow", "\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", None)) self.comboBox.setPlaceholderText("") self.saveButt.setText( QCoreApplication.translate("MainWindow", "Сохранить данные", None)) self.OpenBox.setItemText( 0, QCoreApplication.translate("MainWindow", "Загрузить данные", None)) self.OpenBox.setItemText( 1, QCoreApplication.translate("MainWindow", "Выбрать папку", None)) self.OpenBox.setItemText( 2, QCoreApplication.translate("MainWindow", "Ввести данные", None)) self.change_cbButt.setText( QCoreApplication.translate("MainWindow", "Изменить парамметры", None)) self.DeleteButt.setText( QCoreApplication.translate("MainWindow", "Удалить данные", None)) self.UpdateButt.setText( QCoreApplication.translate("MainWindow", "Обновить данные", None)) self.AnalizButt.setText( QCoreApplication.translate("MainWindow", "Анализировать", None)) self.comboBox_2.setItemText( 0, QCoreApplication.translate("MainWindow", "1 - 100", None))
class Ui_MainWindow(object): def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName("MainWindow") MainWindow.resize(1121, 770) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.scrollArea = QScrollArea(MainWindow) self.scrollArea.setObjectName("scrollArea") self.scrollArea.setGeometry(QRect(10, 10, 1101, 531)) self.scrollArea.setWidgetResizable(True) self.scrollAreaWidgetContents = QWidget() self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 1099, 529)) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.tableWidget = QTableWidget(self.scrollAreaWidgetContents) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setGeometry(QRect(0, 0, 1099, 529)) self.tableWidget.setAutoFillBackground(True) self.tableWidget.horizontalHeader().setCascadingSectionResizes(False) self.tableWidget.setColumnCount(24) self.column_label = ['begin', 'end', 'time interval', 'login', 'mac ab', 'ULSK1', 'BRAS ip', 'start count', 'alive count', 'stop count', 'incoming', 'outcoming', 'error_count', 'code 0', 'code 1011', 'code 1100', 'code -3', 'code -52', 'code -42', 'code -21', 'code -40', ' code -44', 'code -46', ' code -38'] self.tableWidget.setHorizontalHeaderLabels(self.column_label) self.PathFile = QLineEdit(self.centralwidget) self.PathFile.setGeometry(QRect(200, 10, 831, 90)) self.PathFile.setObjectName("PathFile") self.progressBar_2 = QProgressBar(MainWindow) self.progressBar_2.setObjectName("progressBar_2") self.progressBar_2.setGeometry(QRect(400, 590, 651, 23)) self.progressBar_2.setProperty("value", 0) self.progressBar = QProgressBar(MainWindow) self.progressBar.setObjectName("progressBar") self.progressBar.setGeometry(QRect(400, 650, 651, 23)) self.progressBar.setProperty("value", 0) self.comboBox = QComboBox(MainWindow) self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.setObjectName("comboBox") self.comboBox.setGeometry(QRect(20, 690, 161, 28)) self.comboBox.setEditable(False) self.comboBox.setDuplicatesEnabled(False) self.dateTimeEdit = QDateTimeEdit(MainWindow) self.dateTimeEdit.setObjectName("dateTimeEdit") self.dateTimeEdit.setGeometry(QRect(190, 690, 151, 28)) self.dateTimeEdit.setCurrentSection(QDateTimeEdit.DaySection) self.saveButt = QPushButton(self.centralwidget) self.saveButt.setGeometry(QRect(20, 610, 321, 28)) self.saveButt.setObjectName("saveButt") self.AnalizButt = QPushButton(self.centralwidget) self.AnalizButt.setGeometry(QRect(20, 570, 321, 28)) self.AnalizButt.setObjectName("AnalizButt") self.OpenButt = QPushButton(self.centralwidget) self.OpenButt.setGeometry(QRect(400, 710, 615, 40)) self.OpenButt.setObjectName("OpenButt") self.change_cbButt = QPushButton(self.centralwidget) self.change_cbButt.setObjectName("change_cbButt") self.change_cbButt.setGeometry(QRect(20, 730, 321, 28)) self.change_sizeButt = QPushButton(self.centralwidget) self.change_sizeButt.setObjectName(u"change_sizeButt") self.change_sizeButt.setGeometry(QRect(20, 650, 161, 28)) self.change_sizeLine = QLineEdit(self.centralwidget) self.change_sizeLine.setObjectName("change_sizeLine") self.change_sizeLine.setGeometry(QRect(190, 650, 151, 28)) self.OpenButt.raise_() self.AnalizButt.raise_() self.change_cbButt.raise_() self.progressBar.raise_() self.PathFile.raise_() self.tableWidget.raise_() self.saveButt.raise_() self.comboBox.raise_() self.dateTimeEdit.raise_() self.change_sizeButt.raise_() MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", "MainWindow", None)) #if QT_CONFIG(accessibility) self.tableWidget.setAccessibleName("") #endif // QT_CONFIG(accessibility) self.comboBox.setItemText(0, QCoreApplication.translate("MainWindow", "Парамметры выборки", None)) self.comboBox.setItemText(1, QCoreApplication.translate("MainWindow", "Выборка по логину", None)) self.comboBox.setItemText(2, QCoreApplication.translate("MainWindow", "Выборка по дате", None)) self.comboBox.setCurrentText(QCoreApplication.translate("MainWindow", "\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", None)) self.comboBox.setPlaceholderText("") self.dateTimeEdit.setDisplayFormat(QCoreApplication.translate("MainWindow", "dd.MM.yyyy H:mm:ss")) self.saveButt.setText(QCoreApplication.translate("MainWindow", "Сохранить данные", None)) self.OpenButt.setText(QCoreApplication.translate("MainWindow", "Выбрать папку", None)) self.change_cbButt.setText(QCoreApplication.translate("MainWindow", "Изменить парамметры", None)) self.AnalizButt.setText(QCoreApplication.translate("MainWindow", "Анализировать", None)) self.change_sizeLine.setPlaceholderText(QCoreApplication.translate("MainWindow", "1-1000", None)) self.change_sizeButt.setText(QCoreApplication.translate("MainWindow", u"Изменить выборку", None))
class UIMainDialog(): """UI dialog + widgets definition""" def setup_ui(self, main_dialog): """Initializes the UI""" main_dialog.setObjectName("main_dialog") main_dialog.resize(395, 284) main_dialog.setStyleSheet(STYLE) self.target_path_line_edit = QLineEdit(main_dialog) self.target_path_line_edit.setGeometry(QRect(10, 10, 291, 20)) self.target_path_line_edit.setObjectName("target_path_line_edit") self.browse_path_btn = QPushButton(main_dialog) self.browse_path_btn.setGeometry(QRect(310, 9, 75, 23)) self.browse_path_btn.setFocusPolicy(Qt.NoFocus) self.browse_path_btn.setObjectName("browse_path_btn") self.prefix_chk = QCheckBox(main_dialog) self.prefix_chk.setGeometry(QRect(10, 43, 70, 17)) self.prefix_chk.setFocusPolicy(Qt.NoFocus) self.prefix_chk.setObjectName("prefix_chk") self.prefix_line_edit = QLineEdit(main_dialog) self.prefix_line_edit.setEnabled(False) self.prefix_line_edit.setGeometry(QRect(90, 42, 294, 20)) self.prefix_line_edit.setObjectName("prefix_line_edit") self.suff_chk = QCheckBox(main_dialog) self.suff_chk.setGeometry(QRect(10, 71, 70, 17)) self.suff_chk.setFocusPolicy(Qt.NoFocus) self.suff_chk.setObjectName("suff_chk") self.suff_line_edit = QLineEdit(main_dialog) self.suff_line_edit.setEnabled(False) self.suff_line_edit.setGeometry(QRect(90, 70, 294, 20)) self.suff_line_edit.setObjectName("suff_line_edit") self.rename_chk = QCheckBox(main_dialog) self.rename_chk.setGeometry(QRect(10, 101, 70, 17)) self.rename_chk.setFocusPolicy(Qt.NoFocus) self.rename_chk.setChecked(True) self.rename_chk.setObjectName("rename_chk") self.rename_old_line_edit = QLineEdit(main_dialog) self.rename_old_line_edit.setEnabled(True) self.rename_old_line_edit.setGeometry(QRect(90, 100, 140, 20)) self.rename_old_line_edit.setObjectName("rename_old_line_edit") self.rename_new_line_edit = QLineEdit(main_dialog) self.rename_new_line_edit.setEnabled(True) self.rename_new_line_edit.setGeometry(QRect(242, 100, 141, 20)) self.rename_new_line_edit.setObjectName("rename_new_line_edit") self.ext_chk = QCheckBox(main_dialog) self.ext_chk.setGeometry(QRect(10, 131, 110, 17)) self.ext_chk.setFocusPolicy(Qt.NoFocus) self.ext_chk.setObjectName("ext_chk") self.ext_line_edit = QLineEdit(main_dialog) self.ext_line_edit.setEnabled(False) self.ext_line_edit.setGeometry(QRect(133, 130, 251, 20)) self.ext_line_edit.setObjectName("ext_line_edit") self.include_subdir_chk = QCheckBox(main_dialog) self.include_subdir_chk.setGeometry(QRect(134, 170, 128, 17)) self.include_subdir_chk.setFocusPolicy(Qt.NoFocus) self.include_subdir_chk.setObjectName("include_subdir_chk") self.prev_file_name_title_label = QLabel(main_dialog) self.prev_file_name_title_label.setGeometry(QRect(20, 201, 90, 13)) self.prev_file_name_title_label.setObjectName( "prev_file_name_title_label") self.prev_file_name_label = QLabel(main_dialog) self.prev_file_name_label.setGeometry(QRect(124, 201, 260, 13)) self.prev_file_name_label.setObjectName("prev_file_name_label") self.rename_files_btn = QPushButton(main_dialog) self.rename_files_btn.setGeometry(QRect(156, 230, 91, 41)) self.rename_files_btn.setFocusPolicy(Qt.NoFocus) self.rename_files_btn.setObjectName("rename_files_btn") self.view_log_btn = QPushButton(main_dialog) self.view_log_btn.setGeometry(QRect(310, 255, 75, 23)) self.view_log_btn.setFocusPolicy(Qt.NoFocus) self.view_log_btn.setObjectName("view_log_btn") self.retranslate_ui(main_dialog) QMetaObject.connectSlotsByName(main_dialog) def retranslate_ui(self, main_dialog): """Initializes widget texts""" main_dialog.setWindowTitle( QApplication.translate("main_dialog", "Easy File Renamer", None, -1)) self.target_path_line_edit.setToolTip( QApplication.translate("main_dialog", "Target directory containing the files", None, -1)) self.target_path_line_edit.setPlaceholderText( QApplication.translate("main_dialog", "Target directory", None, -1)) self.browse_path_btn.setToolTip( QApplication.translate("main_dialog", "Browse target directory", None, -1)) self.browse_path_btn.setText( QApplication.translate("main_dialog", "Browse", None, -1)) self.prefix_chk.setToolTip( QApplication.translate("main_dialog", "If checked, adds a prefix to file names", None, -1)) self.prefix_chk.setText( QApplication.translate("main_dialog", "Add Prefix", None, -1)) self.prefix_line_edit.setToolTip( QApplication.translate("main_dialog", "Desired prefix", None, -1)) self.prefix_line_edit.setPlaceholderText( QApplication.translate("main_dialog", "PREF_", None, -1)) self.suff_chk.setToolTip( QApplication.translate("main_dialog", "If checked, adds a suffix to file names", None, -1)) self.suff_chk.setText( QApplication.translate("main_dialog", "Add Suffix", None, -1)) self.suff_line_edit.setToolTip( QApplication.translate("main_dialog", "Desired suffix", None, -1)) self.suff_line_edit.setPlaceholderText( QApplication.translate("main_dialog", "_SUFF", None, -1)) self.rename_chk.setToolTip( QApplication.translate( "main_dialog", "If checked, it replaces the provided old name with the new name on file names", None, -1)) self.rename_chk.setText( QApplication.translate("main_dialog", "Rename", None, -1)) self.rename_old_line_edit.setToolTip( QApplication.translate("main_dialog", "Old name to replace on file names", None, -1)) self.rename_old_line_edit.setPlaceholderText( QApplication.translate("main_dialog", "Old name", None, -1)) self.rename_new_line_edit.setToolTip( QApplication.translate("main_dialog", "New name to replace on file names", None, -1)) self.rename_new_line_edit.setPlaceholderText( QApplication.translate("main_dialog", "New name", None, -1)) self.ext_chk.setToolTip( QApplication.translate("main_dialog", "If checked, changes file extension", None, -1)) self.ext_chk.setText( QApplication.translate("main_dialog", "Change extension", None, -1)) self.ext_line_edit.setToolTip( QApplication.translate("main_dialog", "New file extension (without dot)", None, -1)) self.ext_line_edit.setPlaceholderText( QApplication.translate("main_dialog", "ext (No dot)", None, -1)) self.include_subdir_chk.setToolTip( QApplication.translate( "main_dialog", "If checked, it includes files in sub-folders", None, -1)) self.include_subdir_chk.setText( QApplication.translate("main_dialog", "Include subdirectories", None, -1)) self.prev_file_name_title_label.setText( QApplication.translate("main_dialog", "File name preview:", None, -1)) self.prev_file_name_label.setText( QApplication.translate("main_dialog", "Please input a directory", None, -1)) self.rename_files_btn.setText( QApplication.translate("main_dialog", "Rename Files", None, -1)) self.view_log_btn.setToolTip( QApplication.translate("main_dialog", "View application's log", None, -1)) self.view_log_btn.setText( QApplication.translate("main_dialog", "View log", None, -1))
class AddUser(QDialog): def __init__(self): super(AddUser, self).__init__() self.setFixedSize(300, 190) self.setWindowIcon(QIcon('icons/auth.png')) self.setWindowTitle('添加用户') self.client = DbHelper.query_client() lbl_name = QLabel('姓名', self) lbl_name.setGeometry(10, 20, 50, 26) lbl_name.setAlignment(Qt.AlignCenter) self.le_name = QLineEdit(self) self.le_name.setGeometry(70, 20, 200, 26) self.le_name.setDisabled(True if self.client is None else False) lbl_color = QLabel('颜色值', self) lbl_color.setGeometry(10, 100, 50, 26) lbl_color.setAlignment(Qt.AlignCenter) self.le_color = QLineEdit(self) self.le_color.setGeometry(70, 100, 200, 26) self.le_color.setDisabled(True if self.client is None else False) self.btn_save = QPushButton(self) self.btn_save.setText('添加' if self.client is not None else '客户端未连接') self.btn_save.setGeometry(10, 140, 280, 30) self.btn_save.clicked.connect(self.save) self.btn_save.setDisabled(True if self.client is None else False) def save(self): name = self.le_name.text().strip(' ') if name == '': self.btn_save.setText('请输入姓名') self.le_name.setFocus() return if not name.replace(' ', '').encode("utf-8").isalpha(): self.btn_save.setText('只支持英文字母和空格~') self.le_name.setFocus() return color = self.le_color.text().strip(' ') if color == '': self.btn_save.setText('请输入颜色值') self.le_color.setFocus() return colors = color.split(',') if len(colors) != 3: self.btn_save.setText('颜色值不正确') self.le_color.setFocus() return for c in colors: if not c.isdigit() or int(c) > 255 or int(c) < 0: self.btn_save.setText('颜色值不正确') self.le_color.setFocus() return self.btn_save.setDisabled(True) result, data = Tool.user_add(self.client[0], name, color) if result: DbHelper.insert_user(data, name, color, self.client[0]) self.close() elif data is not None: self.btn_save.setDisabled(False) self.btn_save.setText(data) else: self.btn_save.setDisabled(False) self.btn_save.setText("添加失败")
class Translate(QMainWindow): def __init__(self): super(Translate, self).__init__() self.resize(640, 480) self.setMinimumSize(640, 480) self.setMaximumSize(640, 480) self.setWindowTitle('Translate') self.setWindowIcon(QIcon('arti.PNG')) self.setFont(QFont('Roboto', 12)) palette = QPalette() palette.setColor(palette.Window, QColor('#000000')) palette.setColor(palette.WindowText, QColor('#FFFFFF')) palette.setColor(palette.Button, QColor("#00FF00")) palette.setColor(palette.ButtonText, QColor("#000000")) self.setPalette(palette) self.menubar = QMenuBar(self) self.menubar.setGeometry(0, 0, 682, 21) self.menubar.setFont(QFont('Roboto', 10)) self.date_menu = QMenu(self.menubar) self.date_menu.setTitle(str(datetime.now().strftime('%d-%m-%Y'))) self.setMenuBar(self.menubar) self.menubar.addAction(self.date_menu.menuAction()) self.label = QLabel(self) self.label.setGeometry(QRect(0, 40, 631, 91)) self.label.setAlignment(Qt.AlignCenter) self.label.setText( 'Welcome to Translate \n Tip: The language for text you enter below is always English.' ) self.to_translate = QLineEdit(self) self.to_translate.setGeometry(QRect(10, 180, 611, 41)) self.to_translate.setPlaceholderText('Initial Text:') self.label_2 = QLabel(self) self.label_2.setGeometry(QRect(10, 270, 151, 31)) self.label_2.setText('Select Language -->') self.translate_button = QPushButton(self) self.translate_button.setGeometry(QRect(400, 260, 191, 51)) self.translate_button.setCursor(QCursor(Qt.PointingHandCursor)) self.translate_button.setText('Let\'s Translate!!') self.translate_button.clicked.connect(lambda: self.button_press()) self.translated_text = QLabel(self) self.translated_text.setGeometry(QRect(20, 350, 601, 71)) self.translated_text.setAlignment(Qt.AlignCenter) self.translated_text.setWordWrap(True) self.language = QComboBox(self) self.language.addItem("None") self.language.addItem("Afrikaans") # 1 self.language.addItem("Albanian") # 2 self.language.addItem("Amharic") # 3 self.language.addItem("Arabic") # 4 self.language.addItem("Armenian") # 5 self.language.addItem("Azerbaijani") # 6 self.language.addItem("Basque") # 7 self.language.addItem("Belarusian") # 8 self.language.addItem("Bengali") # 9 self.language.addItem("Bosnian") # 10 self.language.addItem("Bulgarian") # 11 self.language.addItem("Catalan") # 12 self.language.addItem("Cebuano") # 13 self.language.addItem("Chinese (Simplified)") # 14 self.language.addItem("Chinese (Traditional)") # 15 self.language.addItem("Corsican") # 16 self.language.addItem("Croatian") # 17 self.language.addItem("Czech") # 18 self.language.addItem("Danish") # 19 self.language.addItem("Dutch") # 20 self.language.addItem("English") # 21 self.language.addItem("Esperanto") # 22 self.language.addItem("Estonian") # 23 self.language.addItem("Finnish") # 24 self.language.addItem("French") # 25 self.language.addItem("Frisian") # 26 self.language.addItem("Galician") # 27 self.language.addItem("Georgian") # 28 self.language.addItem("German") # 29 self.language.addItem("Greek") # 30 self.language.addItem("Gujarati") # 31 self.language.addItem("Haitian Creole") # 32 self.language.addItem("Hausa") # 33 self.language.addItem("Hawaiian") # 34 self.language.addItem("Hebrew") # 35 self.language.addItem("Hindi") # 36 self.language.addItem("Hmong") # 37 self.language.addItem("Hungarian") # 38 self.language.addItem("Icelandic") # 39 self.language.addItem("Igbo") # 40 self.language.addItem("Indonesian") # 41 self.language.addItem("Irish") # 42 self.language.addItem("Italian") # 43 self.language.addItem("Japanese") # 44 self.language.addItem("Javanese") # 45 self.language.addItem("Kannada") # 46 self.language.addItem("Kazakh") # 47 self.language.addItem("Khmer") # 48 self.language.addItem("Kinyarwanda") # 49 self.language.addItem("Korean") # 50 self.language.addItem("Kurdish") # 51 self.language.addItem("Kyrgyz") # 52 self.language.addItem("Lao") # 53 self.language.addItem("Latin") # 54 self.language.addItem("Latvian") # 55 self.language.addItem("Lithuanian") # 56 self.language.addItem("Luxembourgish") # 57 self.language.addItem("Macedonian") # 58 self.language.addItem("Malagasy") # 59 self.language.addItem("Malay") # 60 self.language.addItem("Malayalam") # 61 self.language.addItem("Maltese") # 62 self.language.addItem("Maori") # 63 self.language.addItem("Marathi") # 64 self.language.addItem("Mongolian") # 65 self.language.addItem("Mayanmar (Burmese)") # 66 self.language.addItem("Nepali") # 67 self.language.addItem("Norwegian") # 68 self.language.addItem("Nyanja (Chichewa)") # 69 self.language.addItem("Odia (Oriya)") # 70 self.language.addItem("Pashto") # 71 self.language.addItem("Persian") # 72 self.language.addItem("Polish") # 73 self.language.addItem("Portugese (Portugal, Brazil)") # 74 self.language.addItem("Punjabi") # 75 self.language.addItem("Romanian") # 76 self.language.addItem("Russian") # 77 self.language.addItem("Samoan") # 78 self.language.addItem("Scots Gaelic") # 79 self.language.addItem("Serbian") # 80 self.language.addItem("Sesotho") # 81 self.language.addItem("Shona") # 82 self.language.addItem("Sindhi") # 83 self.language.addItem("Sinhala (Sinhalese)") # 84 self.language.addItem("Slovak") # 85 self.language.addItem("Slovenian") # 86 self.language.addItem("Somali") # 87 self.language.addItem("Spanish") # 88 self.language.addItem("Sundanese") # 89 self.language.addItem("Swahili") # 90 self.language.addItem("Swedish") # 91 self.language.addItem("Tagalong (Filipino)") # 92 self.language.addItem("Tajik") # 93 self.language.addItem("Tamil") # 94 self.language.addItem("Tatar") # 95 self.language.addItem("Telugu") # 96 self.language.addItem("Thai") # 97 self.language.addItem("Turkish") # 98 self.language.addItem("Turkmen") # 99 self.language.addItem("Ukrainian") # 100 self.language.addItem("Urdu") # 101 self.language.addItem("Uyghur") # 102 self.language.addItem("Uzbek") # 103 self.language.addItem("Vietnamese") # 104 self.language.addItem("Welsh") # 105 self.language.addItem("Xhosa") # 106 self.language.addItem("Yiddish") # 107 self.language.addItem("Yoruba") # 108 self.language.addItem("Zulu") # 109 self.language.setGeometry(QRect(180, 270, 171, 31)) QMetaObject.connectSlotsByName(self) def translate(self, final_lang): self.translated_text.setText( str(self.translator.translate(to=str(final_lang)))) def button_press(self): self.query = self.to_translate.text() self.translator = TextBlob(self.query) self.to_translate.clear() if self.language.currentIndex() == 0: self.translated_text.setText('Please choose a Language First.') try: if self.language.currentIndex() == 1: self.translate('af') elif self.language.currentIndex() == 2: self.translate('sq') elif self.language.currentIndex() == 3: self.translate('am') elif self.language.currentIndex() == 4: self.translate('ar') elif self.language.currentIndex() == 5: self.translate('hy') elif self.language.currentIndex() == 6: self.translate('az') elif self.language.currentIndex() == 7: self.translate('eu') elif self.language.currentIndex() == 8: self.translate('be') elif self.language.currentIndex() == 9: self.translate('bn') elif self.language.currentIndex() == 10: self.translate('bs') elif self.language.currentIndex() == 11: self.translate('bg') elif self.language.currentIndex() == 12: self.translate('ca') elif self.language.currentIndex() == 13: self.translate('ceb') elif self.language.currentIndex() == 14: try: self.translate('zh-CN') except: self.translate('zh') elif self.language.currentIndex() == 15: self.translate('zh-TW') elif self.language.currentIndex() == 16: self.translate('co') elif self.language.currentIndex() == 17: self.translate('hr') elif self.language.currentIndex() == 18: self.translate('cs') elif self.language.currentIndex() == 19: self.translate('da') elif self.language.currentIndex() == 20: self.translate('nl') elif self.language.currentIndex() == 21: self.translate('en') elif self.language.currentIndex() == 22: self.translate('eo') elif self.language.currentIndex() == 23: self.translate('et') elif self.language.currentIndex() == 24: self.translate('fi') elif self.language.currentIndex() == 25: self.translate('fr') elif self.language.currentIndex() == 26: self.translate('fy') elif self.language.currentIndex() == 27: self.translate('gl') elif self.language.currentIndex() == 28: self.translate('ka') elif self.language.currentIndex() == 29: self.translate('de') elif self.language.currentIndex() == 30: self.translate('el') elif self.language.currentIndex() == 31: self.translate('gu') elif self.language.currentIndex() == 32: self.translate('ht') elif self.language.currentIndex() == 33: self.translate('ha') elif self.language.currentIndex() == 34: self.translate('haw') elif self.language.currentIndex() == 35: try: self.translate('he') except: self.translate('iw') elif self.language.currentIndex() == 36: self.translate('hi') elif self.language.currentIndex() == 37: self.translate('hmn') elif self.language.currentIndex() == 38: self.translate('hu') elif self.language.currentIndex() == 39: self.translate('is') elif self.language.currentIndex() == 40: self.translate('ig') elif self.language.currentIndex() == 41: self.translate('id') elif self.language.currentIndex() == 42: self.translate('ga') elif self.language.currentIndex() == 43: self.translate('it') elif self.language.currentIndex() == 44: self.translate('ja') elif self.language.currentIndex() == 45: self.translate('jv') elif self.language.currentIndex() == 46: self.translate('kn') elif self.language.currentIndex() == 47: self.translate('kk') elif self.language.currentIndex() == 48: self.translate('km') elif self.language.currentIndex() == 49: self.translate('rw') elif self.language.currentIndex() == 50: self.translate('ko') elif self.language.currentIndex() == 51: self.translate('ku') elif self.language.currentIndex() == 52: self.translate('ky') elif self.language.currentIndex() == 53: self.translate('lo') elif self.language.currentIndex() == 54: self.translate('la') elif self.language.currentIndex() == 55: self.translate('lv') elif self.language.currentIndex() == 56: self.translate('lt') elif self.language.currentIndex() == 57: self.translate('lb') elif self.language.currentIndex() == 58: self.translate('mk') elif self.language.currentIndex() == 59: self.translate('mg') elif self.language.currentIndex() == 60: self.translate('ms') elif self.language.currentIndex() == 61: self.translate('ml') elif self.language.currentIndex() == 62: self.translate('mt') elif self.language.currentIndex() == 63: self.translate('mi') elif self.language.currentIndex() == 64: self.translate('mr') elif self.language.currentIndex() == 65: self.translate('mn') elif self.language.currentIndex() == 66: self.translate('my') elif self.language.currentIndex() == 67: self.translate('ne') elif self.language.currentIndex() == 68: self.translate('no') elif self.language.currentIndex() == 69: self.translate('ny') elif self.language.currentIndex() == 70: self.translate('or') elif self.language.currentIndex() == 71: self.translate('ps') elif self.language.currentIndex() == 72: self.translate('fa') elif self.language.currentIndex() == 73: self.translate('pl') elif self.language.currentIndex() == 74: self.translate('pt') elif self.language.currentIndex() == 75: self.translate('pa') elif self.language.currentIndex() == 76: self.translate('ro') elif self.language.currentIndex() == 77: self.translate('ru') elif self.language.currentIndex() == 78: self.translate('sm') elif self.language.currentIndex() == 79: self.translate('gd') elif self.language.currentIndex() == 80: self.translate('sr') elif self.language.currentIndex() == 81: self.translate('st') elif self.language.currentIndex() == 82: self.translate('sn') elif self.language.currentIndex() == 83: self.translate('sd') elif self.language.currentIndex() == 84: self.translate('si') elif self.language.currentIndex() == 85: self.translate('sk') elif self.language.currentIndex() == 86: self.translate('sl') elif self.language.currentIndex() == 87: self.translate('so') elif self.language.currentIndex() == 88: self.translate('es') elif self.language.currentIndex() == 89: self.translate('su') elif self.language.currentIndex() == 90: self.translate('sw') elif self.language.currentIndex() == 91: self.translate('sv') elif self.language.currentIndex() == 92: self.translate('tl') elif self.language.currentIndex() == 93: self.translate('tg') elif self.language.currentIndex() == 94: self.translate('ta') elif self.language.currentIndex() == 95: self.translate('tt') elif self.language.currentIndex() == 96: self.translate('te') elif self.language.currentIndex() == 97: self.translate('th') elif self.language.currentIndex() == 98: self.translate('tr') elif self.language.currentIndex() == 99: self.translate('tk') elif self.language.currentIndex() == 100: self.translate('uk') elif self.language.currentIndex() == 101: self.translate('ur') elif self.language.currentIndex() == 102: self.translate('ug') elif self.language.currentIndex() == 103: self.translate('uz') elif self.language.currentIndex() == 104: self.translate('vi') elif self.language.currentIndex() == 105: self.translate('cy') elif self.language.currentIndex() == 106: self.translate('xh') elif self.language.currentIndex() == 107: self.translate('yi') elif self.language.currentIndex() == 108: self.translate('yo') elif self.language.currentIndex() == 109: self.translate('zu') except: self.translated_text.setText( "An error occurred. Either the initial and final language is same or try " "again. \n" "Tip2: You cannot translate numbers; only words. ðŸ˜ðŸ˜")
class Artigence(QMainWindow): def __init__(self): super(Artigence, self).__init__() # Basic Settings self.setGeometry(300, 200, 682, 422) self.setMinimumSize(QSize(682, 422)) self.setMaximumSize(QSize(682, 422)) self.setWindowIcon(QIcon("arti.PNG")) self.setWindowTitle("Artigence Home") # Color Scheme self.palette = QPalette() self.palette.setColor(self.palette.Window, QColor('#000000')) self.palette.setColor(self.palette.WindowText, QColor('#FFFFFF')) self.setPalette(self.palette) self.light_palette = QPalette() self.light_palette.setColor(self.light_palette.Window, QColor('#FFFFFF')) self.light_palette.setColor(self.light_palette.WindowText, QColor('#000000')) # Setting MenuBar self.menubar = QMenuBar(self) self.menubar.setGeometry(0, 0, 682, 21) self.date_menu = QMenu(self.menubar) self.date_menu.setTitle(str(datetime.now().strftime('%d-%m-%Y'))) self.theme_menu = QMenu(self.menubar) self.theme_menu.setTitle('Theme') self.dark_theme = QAction('Dark Theme') self.dark_theme.setShortcut(QKeySequence('Ctrl+Shift+D')) self.theme_menu.addAction(self.dark_theme) self.dark_theme.triggered.connect(lambda: self.dark()) self.light_theme = QAction('Light Theme') self.light_theme.setShortcut(QKeySequence('Ctrl+Shift+L')) self.theme_menu.addAction(self.light_theme) self.light_theme.triggered.connect(lambda: self.light()) self.app_menu = QMenu(self.menubar) self.app_menu.setTitle('Apps') self.calculator_menu = QAction('Calculator') self.calculator_menu.setShortcut(QKeySequence('Alt+C')) self.app_menu.addAction(self.calculator_menu) self.calculator_menu.triggered.connect(lambda: self.calculator_func()) self.game_menu = QAction('GameHub') self.game_menu.setShortcut(QKeySequence('Alt+G')) self.app_menu.addAction(self.game_menu) self.game_menu.triggered.connect(lambda: self.games_func()) self.music_menu = QAction('Muse (Music)') self.music_menu.setShortcut(QKeySequence('Alt+M')) self.app_menu.addAction(self.music_menu) self.music_menu.triggered.connect(lambda: self.music_func()) self.news_menu = QAction('News') self.news_menu.setShortcut(QKeySequence('Alt+E')) self.app_menu.addAction(self.news_menu) self.news_menu.triggered.connect(lambda: self.news_func()) self.notepad_menu = QAction('Notepad') self.notepad_menu.setShortcut(QKeySequence('Alt+N')) self.app_menu.addAction(self.notepad_menu) self.notepad_menu.triggered.connect(lambda: self.notepad_func()) self.pronunciator = QAction('Pronunciator') self.pronunciator.setShortcut(QKeySequence('Alt+P')) self.app_menu.addAction(self.pronunciator) self.pronunciator.triggered.connect(lambda: self.pronunciator_func()) self.translate_menu = QAction('Translate') self.translate_menu.setShortcut(QKeySequence('Alt+T')) self.app_menu.addAction(self.translate_menu) self.translate_menu.triggered.connect(lambda: self.translate_func()) self.weather_menu = QAction('Weather') self.weather_menu.setShortcut(QKeySequence('Alt+W')) self.app_menu.addAction(self.weather_menu) self.weather_menu.triggered.connect(lambda: self.weather_func()) self.setMenuBar(self.menubar) self.menubar.addAction(self.date_menu.menuAction()) self.menubar.addAction(self.theme_menu.menuAction()) self.menubar.addAction(self.app_menu.menuAction()) # Creating Widgets self.query = QLineEdit(self) self.query.setGeometry(QRect(20, 30, 451, 41)) self.query.setMinimumSize(QSize(451, 41)) self.query.setMaximumSize(QSize(451, 41)) self.query.setPlaceholderText("Enter your Query Here:") self.query.setFont(QFont('Roboto', 16)) self.query.setClearButtonEnabled(True) self.update = QPushButton(self) self.update.setGeometry(QRect(491, 30, 171, 41)) self.update.setMinimumSize(QSize(1, 1)) self.update.setMaximumSize(QSize(171, 51)) self.update.setText("What's New in the Updates?") self.update.setCursor(QCursor(Qt.PointingHandCursor)) self.suggestions = QLabel(self) self.suggestions.setGeometry(QRect(20, 220, 111, 31)) self.suggestions.setMinimumSize(QSize(111, 31)) self.suggestions.setMaximumSize(QSize(111, 31)) self.suggestions.setText("Suggestions:") self.suggestions.setFont(QFont('Roboto', 14)) self.chrome = QPushButton(self) self.chrome.setGeometry(QRect(20, 260, 91, 31)) self.chrome.setCursor(QCursor(Qt.PointingHandCursor)) self.chrome.setText('Open Chrome') self.games = QPushButton(self) self.games.setGeometry(QRect(420, 260, 91, 31)) self.games.setCursor(QCursor(Qt.PointingHandCursor)) self.games.setText('Games') self.cmd = QPushButton(self) self.cmd.setGeometry(QRect(160, 260, 91, 31)) self.cmd.setCursor(QCursor(Qt.PointingHandCursor)) self.cmd.setText('Open Cmd') self.joke = QPushButton(self) self.joke.setGeometry(QRect(160, 310, 91, 31)) self.joke.setCursor(QCursor(Qt.PointingHandCursor)) self.joke.setText('Joke Please!!') self.music = QPushButton(self) self.music.setGeometry(QRect(290, 260, 91, 31)) self.music.setCursor(QCursor(Qt.PointingHandCursor)) self.music.setText('Music') self.youtube = QPushButton(self) self.youtube.setGeometry(QRect(290, 310, 91, 31)) self.youtube.setCursor(QCursor(Qt.PointingHandCursor)) self.youtube.setText('Youtube') self.time = QPushButton(self) self.time.setGeometry(QRect(20, 310, 91, 31)) self.time.setCursor(QCursor(Qt.PointingHandCursor)) self.time.setText('Tell Time') self.weather = QPushButton(self) self.weather.setGeometry(QRect(420, 310, 91, 31)) self.weather.setCursor(QCursor(Qt.PointingHandCursor)) self.weather.setText('Weather') self.calculator = QPushButton(self) self.calculator.setGeometry(QRect(550, 260, 101, 31)) self.calculator.setCursor(QCursor(Qt.PointingHandCursor)) self.calculator.setText('Calculator') self.wikipedia = QPushButton(self) self.wikipedia.setGeometry(QRect(550, 310, 101, 31)) self.wikipedia.setCursor(QCursor(Qt.PointingHandCursor)) self.wikipedia.setText('India Wikipedia') self.news = QPushButton(self) self.news.setGeometry(QRect(20, 360, 91, 31)) self.news.setCursor(QCursor(Qt.PointingHandCursor)) self.news.setText('Latest News') self.meaning = QPushButton(self) self.meaning.setGeometry(QRect(420, 360, 231, 31)) self.meaning.setCursor(QCursor(Qt.PointingHandCursor)) self.meaning.setText('Meaning of Obsolete (or any word)') self.harry_potter = QPushButton(self) self.harry_potter.setGeometry(QRect(290, 360, 91, 31)) self.harry_potter.setCursor(QCursor(Qt.PointingHandCursor)) self.harry_potter.setText('Harry Potter') self.translate = QPushButton(self) self.translate.setGeometry(QRect(160, 360, 91, 31)) self.translate.setCursor(QCursor(Qt.PointingHandCursor)) self.translate.setText('Open Translate') self.line = QFrame(self) self.line.setGeometry(QRect(20, 200, 661, 16)) self.line.setFrameShape(QFrame.HLine) self.line.setFrameShadow(QFrame.Sunken) self.label = QLabel(self) self.label.setGeometry(QRect(20, 100, 631, 91)) self.label.setFont(QFont('Roboto', 12)) self.label.setTextFormat(Qt.AutoText) self.label.setWordWrap(True) self.wish() # Making the Widgets Functional self.query.returnPressed.connect(lambda: self.on_enter()) self.query.returnPressed.connect(lambda: self.clear_text()) self.update.clicked.connect(lambda: self.update_func()) self.music.clicked.connect(lambda: self.music_func()) self.games.clicked.connect(lambda: self.games_func()) self.calculator.clicked.connect(lambda: self.calculator_func()) self.weather.clicked.connect(lambda: self.weather_func()) self.news.clicked.connect(lambda: self.news_func()) self.translate.clicked.connect(lambda: self.translate_func()) self.time.clicked.connect(lambda: self.time_func()) self.joke.clicked.connect(lambda: self.joke_func()) self.youtube.clicked.connect(lambda: self.youtube_func()) self.wikipedia.clicked.connect(lambda: self.wikipedia_func()) self.chrome.clicked.connect(lambda: self.chrome_func()) self.cmd.clicked.connect(lambda: self.cmd_func()) self.meaning.clicked.connect(lambda: self.meaning_func()) self.harry_potter.clicked.connect(lambda: self.potter_func()) def pronunciator_func(self): self.speak('Opening Pronunciator') from pronunciator import Pronunciator self.pronunciator_win = Pronunciator() self.pronunciator_win.show() def pong_func(self): import pong def notepad_func(self): self.speak('Opening Notepad') from notepad import Notepad self.notepad_win = Notepad() self.notepad_win.show() def update_func(self): os.startfile('Each Version Updates.txt') def translate_func(self): self.speak( 'Opening Translate\nPlease Wait as opening Translate may take up to 4-5 seconds' ) from translate import Translate self.translate_win = Translate() self.translate_win.show() def games_func(self): self.speak('Opening GameHub') from games import GameHub self.game_win = GameHub() self.game_win.show() def weather_func(self): self.speak('Opening Weather.') from weather import Weather self.weather_win = Weather() self.weather_win.show() def music_func(self): self.speak('Opening Muse') from music import Music self.music_win = Music() self.music_win.show() def calculator_func(self): self.speak('Opening Calculator.') from calculator import Calculator self.calculator_win = Calculator() self.calculator_win.show() def news_func(self): self.speak('Opening News.') from news import News self.news_win = News() self.news_win.show() self.speak( 'Welcome to News.\nThese are the latest international headlines according to BBC News Network.' ) def chrome_func(self): try: chrome_path = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' os.startfile(chrome_path) self.speak('Opening Chrome.') except Exception: self.speak( 'No Google Chrome installation found on the host device.') def cmd_func(self): cmd_path = 'C:\\Windows\\system32\\cmd.exe' os.startfile(cmd_path) self.speak('Opening Command Prompt.') def time_func(self): question = 'time' app_id = 'LLQ4QY-A7K3LEL4T8' client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text self.speak(answer) def joke_func(self): self.speak(pyjokes.get_joke()) def youtube_func(self): webbrowser.open('https://www.youtube.com') self.speak('Opening Youtube.') def wikipedia_func(self): try: self.speak('Searching Wikipedia. Please Wait...') query = 'India'.replace('wikipedia', '') result = wikipedia.summary(query, sentences=1) self.speak('According to Wikipedia...') self.speak(result) except Exception as e: self.speak(e) def meaning_func(self): question = 'obsolete' app_id = 'LLQ4QY-A7K3LEL4T8' client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text self.speak(answer) def potter_func(self): new = 2 google_url = "http://google.com/?#q=" webbrowser.open(google_url + 'Harry Potter', new=new) def clear_text(self): self.query.clear() def on_enter(self): user_query = self.query.text().lower() if 'wikipedia' in user_query: try: self.speak('Searching Wikipedia. Please Wait...') user_query = user_query.replace('wikipedia', '') result = wikipedia.summary(user_query, sentences=1) self.speak('According to Wikipedia...') self.speak(result) except Exception as e: self.speak('Please try again later.') self.speak(e) elif 'youtube' in user_query: webbrowser.open('https://www.youtube.com') self.speak('Opening Youtube.') elif 'google' in user_query: webbrowser.open('https://www.google.com/') self.speak('Opening Google.') elif 'chrome' in user_query: # You'll have to download google chrome first on your desktop/pc. try: chrome_path = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' os.startfile(chrome_path) self.speak('Opening Chrome') except Exception: self.speak( 'No Google Chrome installation found on the host device.') elif 'cmd' in user_query: cmd_path = 'C:\\Windows\\system32\\cmd.exe' os.startfile(cmd_path) self.speak('Opening Command Prompt.') elif 'control panel' in user_query: cp_path = 'C:\\Windows\\system32\\control.exe' os.startfile(cp_path) self.speak('Opening Control Panel.') elif 'bye' in user_query or 'goodbye' in user_query or 'good night' in user_query or 'see you later' in user_query: self.speak(random.choice(self.bye)) sys.exit() elif 'hello' in user_query or 'hi' in user_query: self.speak(random.choice(self.hello)) elif 'joke' in user_query: self.speak(pyjokes.get_joke()) elif 'who are you' in user_query: self.speak('I am Artigence, your artificial intelligence.') elif 'map' in user_query or 'maps' in user_query: self.speak('Opening Google Maps.') webbrowser.open("https://www.google.com/maps") elif 'open calculator' in user_query or 'calculator' in user_query: self.calculator_func() elif 'news' in user_query: self.news_func() self.speak( 'Welcome to News.\nThese are the latest international headlines according to BBC News Network.' ) elif 'weather' in user_query: self.weather_func() elif 'games' in user_query: self.games_func() elif 'pronunciator' in user_query or 'pronounce' in user_query: self.pronunciator_func() elif 'translate' in user_query: self.translate_func() elif 'music' in user_query: self.music_func() elif 'notepad' in user_query: self.notepad_func() else: try: question = user_query app_id = 'LLQ4QY-A7K3LEL4T8' client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text self.label.setText(answer) self.label.adjustSize() except: new = 2 google_url = "http://google.com/?#q=" query = user_query webbrowser.open(google_url + query, new=new) # The A.I. will speak through this function def speak(self, audio): self.engine = pyttsx3.init('sapi5') voices = self.engine.getProperty('voices') self.engine.setProperty('voice', voices[1].id) self.engine.setProperty('rate', 165) self.label.setText(audio) self.engine.say(audio) self.engine.runAndWait() self.label.clear() def wish(self): hour = int(datetime.now().hour) if 0 <= hour < 12: self.speak('Good Morning.') elif 12 <= hour < 18: self.speak('Good Afternoon.') else: self.speak('Good Evening.') self.speak('I am Artigence.') self.speak('How may I help you today') hello = ['Kon\'nichiwa', 'Ciao', 'Hola', 'Bonjour', 'Hello', 'Hi', 'Hiya'] bye = [ 'Adios', 'Goodbye', 'Bye-Bye', 'See you next time.', 'Artigence Out.', 'It was nice talking to you sir. Have a nice day.' ] def dark(self): self.setPalette(self.palette) def light(self): self.setPalette(self.light_palette)
class Music(QMainWindow): def __init__(self): super(Music, self).__init__() self.setGeometry(20, 50, 522, 175) self.setMinimumSize(522, 175) self.setMaximumSize(522, 175) self.setWindowTitle('Muse') self.setWindowIcon(QIcon('arti.PNG')) self.setFont(QFont('Roboto', 12)) palette = QPalette() palette.setColor(palette.Window, QColor('#000000')) palette.setColor(palette.WindowText, QColor('#FFFFFF')) self.setPalette(palette) self.menubar = QMenuBar(self) self.menubar.setGeometry(0, 0, 682, 21) self.menubar.setFont(QFont('Roboto', 10)) self.date_menu = QMenu(self.menubar) self.date_menu.setTitle(str(datetime.now().strftime('%d-%m-%Y'))) self.setMenuBar(self.menubar) self.menubar.addAction(self.date_menu.menuAction()) self.song = QLineEdit(self) self.song.setPlaceholderText( 'Enter the name of song you want to search for:') self.song.setGeometry(10, 30, 501, 31) self.spotify = QRadioButton(self) self.spotify.setText('Spotify') self.spotify.setGeometry(120, 80, 101, 21) self.gaana = QRadioButton(self) self.gaana.setText('Gaana') self.gaana.setGeometry(330, 80, 91, 21) self.search = QPushButton(self) self.search.setText('Search') self.search.setGeometry(380, 130, 121, 31) self.search.clicked.connect(lambda: self.on_click()) self.search.setCursor(QCursor(Qt.PointingHandCursor)) self.label = QLabel(self) self.label.setGeometry(10, 130, 341, 31) def on_click(self): self.song_search = self.song.text() if self.song.text(): if self.spotify.isChecked(): self.speak('Searching your song on Spotify.') spotify_url = 'https://open.spotify.com/search/' webbrowser.open(spotify_url + self.song_search) elif self.gaana.isChecked(): self.speak('Searching your song on Gaana.') gaana_url = 'https://gaana.com/search/' webbrowser.open(gaana_url + self.song_search) else: self.speak('Please choose either Spotify or Gaana.') else: self.speak('Please type a song name first') self.song.clear() def speak(self, audio): self.engine = pyttsx3.init('sapi5') self.voices = self.engine.getProperty('voices') self.engine.setProperty('voice', self.voices[1].id) self.engine.setProperty('rate', 165) self.engine.say(audio) self.label.setText(audio) self.engine.runAndWait()
class Ui_Add_Window(object): def setupUi(self, Add_Window): Add_Window.setObjectName("Add_Window") Add_Window.resize(598, 276) Add_Window.setFixedSize(Add_Window.size()) self.centralwidget = QWidget(Add_Window) self.centralwidget.setObjectName("centralwidget") self.addTxt = QLineEdit(self.centralwidget) self.addTxt.setGeometry(QRect(20, 40, 551, 51)) self.addTxt.setObjectName("addTxt") self.cv_file_name = QLineEdit(self.centralwidget) self.cv_file_name.setGeometry(QRect(20, 120, 551, 51)) self.cv_file_name.setObjectName("cv_file_name") self.cv_file_name.setPlaceholderText("Example: file.docx") self.addBtn = QPushButton(self.centralwidget) self.addBtn.setGeometry(QRect(20, 200, 551, 51)) self.addBtn.setObjectName("addBtn") Add_Window.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(Add_Window) self.menubar.setGeometry(QRect(0, 0, 598, 22)) self.menubar.setObjectName("menubar") Add_Window.setMenuBar(self.menubar) self.statusbar = QStatusBar(Add_Window) self.statusbar.setObjectName("statusbar") Add_Window.setStatusBar(self.statusbar) self.retranslateUi(Add_Window) QMetaObject.connectSlotsByName(Add_Window) self.addBtn.clicked.connect(self.Add) def retranslateUi(self, Add_Window): _translate = QCoreApplication.translate Add_Window.setWindowTitle(_translate("Add_Window", "Add")) self.addTxt.setPlaceholderText(_translate("Add_Window", "Add new CV")) self.addBtn.setText(_translate("Add_Window", "Add")) def Add(self): self.add_txt = self.addTxt.text() self.cv_filename_txt = self.cv_file_name.text() self.conn = sqlite3.connect('cv.db') self.cur = self.conn.cursor() # TODO: Fix the error system def error(error_message): error_msgbox = QMessageBox() error_msgbox.setIcon(QMessageBox.Information) error_msgbox.setWindowTitle("Oh no!") error_msgbox.setText("Error!") error_msgbox.setInformativeText(error_message) error_msgbox.setStandardButtons(QMessageBox.Close) error_msgbox.exec_() if self.add_txt == '' and self.cv_file_name == '': error("One or both text fields are empty.") if self.add_txt != '' and self.cv_file_name != '': if "." in self.cv_filename_txt: timeofcreation = datetime.now() self.cur.execute( "INSERT INTO user (cvname, cvfilename, date) VALUES(?,?,?);", (str(self.add_txt), str( self.cv_filename_txt), str(timeofcreation))) self.conn.commit() added_msg = QMessageBox() added_msg.setIcon(QMessageBox.Information) added_msg.setText("Hooray!") added_msg.setWindowTitle("Success!") added_msg.setInformativeText( "Your CV has been successfully added to the database.") added_msg.setStandardButtons(QMessageBox.Ok) added_msg.exec_() else: error("Add a valid filename")
class DDMWindow(QMainWindow): def __init__(self): super().__init__() self.ConfigSettings() self.init_themes_main() self.MainMenuItems() self.MenuCreate() self.WindowSettings() self.show() def download_Cache(self): self.list_widget.clear() for i in getData(): items = QListWidgetItem(i[0], self.list_widget) def download_CacheDelete(self): try: name = self.list_widget.currentItem().text() #print(f"Removing {name}") for i in getData(): if name in i: fname = i break delData(name, fname[1], fname[2]) myfile = Path(f"{fname[1]}/{fname[2]}") print(myfile) if myfile.exists(): if self.sel_lang == "tr": dosya_silme = QMessageBox.warning( self, "Dosyayı Sil", "Dosyayı diskten silmeli miyiz?\n\nDiskten silmek için evete basın!", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) elif self.sel_lang == "en": dosya_silme = QMessageBox.warning( self, "Delete File", "Should we delete file from disk?\n\nTo delete file from disk press yes!", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if dosya_silme == QMessageBox.Yes: try: myfile.unlink() if self.sel_lang == "tr": dosya_silme = QMessageBox.information( self, "Dosya Silindi", "Dosya Başarıyla Silindi!", QMessageBox.Ok, QMessageBox.Ok) elif self.sel_lang == "en": dosya_silme = QMessageBox.information( self, "File Deleted", "File Succesfuly Deleted!", QMessageBox.Ok, QMessageBox.Ok) except Exception as e: print(e) elif dosya_silme == QMessageBox.No: pass self.download_Cache() except Exception as e: print(e) def slideLeftMenu(self): width = self.left_side_menu.width() if width == 50: newWidth = 150 else: newWidth = 50 self.animation = QPropertyAnimation(self.left_side_menu, b"minimumWidth") self.animation.setDuration(250) self.animation.setStartValue(width) self.animation.setEndValue(newWidth) self.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart) self.animation.start() def Add_Download(self): self.add_download_dialog = QDialog() self.add_download_dialog.setWindowTitle("Add_Download") # self.setWindowIcon(QIcon("logo.png")) self.init_themes_add_dialog() self.add_download_dialog.setFixedSize(325, 275) self.add_download_dialog.setMinimumSize(325, 240) self.isim = QLabel("İndir", self.add_download_dialog) self.isim.setFont(QFont("Hack Nerd Font", 15)) self.isim.setGeometry(124, 13, 125, 34) # İlerleme/Progress # self.progressBar = # URL KUTUSU self.urlbox = QLineEdit("", self.add_download_dialog) # self.urlbox.setFixedSize(100,4) self.urlbox.setGeometry(35, 60, 250, 34) self.urlbox.setPlaceholderText("URL Gir") self.urlbox.setFont(QFont("Hack Nerd Font", 11)) # INDIRME KONUMU self.downdirectory = QLineEdit(str(Path.home()), self.add_download_dialog) self.downdirectory.setGeometry(35, 100, 210, 34) self.downdirectory.setPlaceholderText("İndirilecek Konum") self.downdirectory.setFont(QFont("Hack Nerd Font", 11)) # Dosya İsmi self.enterfilename = QLineEdit("", self.add_download_dialog) # self.filename.setFixedSize(100,4) self.enterfilename.setGeometry(35, 140, 210, 34) self.enterfilename.setPlaceholderText("Dosya İsmi(Opsiyonel)") self.enterfilename.setFont(QFont("Hack Nerd Font", 11)) def connectfilename(): fnameloop = asyncio.get_event_loop() fnameloop.run_until_complete(self.detect_fname()) self.connectfilename = QPushButton(".", self.add_download_dialog) self.connectfilename.setGeometry(249, 140, 36, 34) self.connectfilename.setFont(QFont("Hack Nerd Font", 11)) self.connectfilename.clicked.connect(connectfilename) # KONUM SEÇ BUTONU def download_dir(): if self.sel_lang == "tr": try: self.dirselectdialog = QFileDialog.getExistingDirectory( self.add_download_dialog, 'İndirilecek Konumu Seç') except Exception as e: print(e) elif self.sel_lang == "en": try: self.dirselectdialog = QFileDialog.getExistingDirectory( self.add_download_dialog, 'Select Dir') except Exception as e: print(e) if self.dirselectdialog == "": self.downdirectory.setText(str(Path.home())) else: self.downdirectory.setText(str(self.dirselectdialog)) self.selectdirbutton = QPushButton("...", self.add_download_dialog) self.selectdirbutton.setGeometry(249, 100, 36, 34) self.selectdirbutton.setFont(QFont("Hack Nerd Font", 11)) self.selectdirbutton.clicked.connect(download_dir) # ProgressBar/İlerleme self.progressbar = QProgressBar(self.add_download_dialog) self.progressbar.setGeometry(35, 180, 250, 34) self.progressbar.setValue(0) # self.progressbar.hide() # INDIR BUTONU def start_downloading_process(): url = str(self.urlbox.text()) if url == "": if self.sel_lang == "tr": self.urlboxempty = QMessageBox.warning( self.add_download_dialog, "URL Kutusu Boş", "Lütfen bir url giriniz!", QMessageBox.Ok, QMessageBox.Ok) elif self.sel_lang == "en": self.urlboxempty = QMessageBox.warning( self.add_download_dialog, "URL Box Empty", "Please enter a URL!", QMessageBox.Ok, QMessageBox.Ok) else: # self.add_download_dialog.close() # self.downloading_file() # self.add_download_dialog.close() self.download() self.downloadbutton = QPushButton("İndir", self.add_download_dialog) self.downloadbutton.setGeometry(85, 220, 70, 40) self.downloadbutton.setFont(QFont("Hack Nerd Font", 11)) self.downloadbutton.clicked.connect(start_downloading_process) # self.downloadbutton.setStyleSheet("background-color: #268bd2;") # ÇIKIŞ BUTONU self.iptalbutton = QPushButton("İptal", self.add_download_dialog) self.iptalbutton.setGeometry(160, 220, 70, 40) self.iptalbutton.setFont(QFont("Hack Nerd Font", 11)) self.iptalbutton.clicked.connect(self.add_download_dialog.close) # self.iptalbutton.setStyleSheet("background-color: #ed0b0b;") self.reTranslateAddDownload() self.add_download_dialog.show() # def downloading_file(self): # self.downloading_dialog = QDialog() # self.init_themes_add_dialog() # self.downloading_dialog.setFixedSize(240, 240) # #self.downloading_dialog.setMinimumSize(325, 240) # self.downloading_dialog.exec() def reTranslateAddDownload(self): if self.sel_lang == "en": self.isim.setText("Download") self.isim.setGeometry(110, 13, 125, 34) self.downloadbutton.setText("Download") self.downloadbutton.setGeometry(65, 220, 90, 40) self.iptalbutton.setText("Cancel") self.enterfilename.setPlaceholderText("File Name(Optional)") self.downdirectory.setPlaceholderText("Enter Directory") self.urlbox.setPlaceholderText("Enter the URL") def eventFilter(self, source, event): try: if (event.type() == QtCore.QEvent.ContextMenu and source is self.list_widget): try: self.menu = QMenu() self.menu.addAction('In Future') if self.menu.exec_(event.globalPos()): item = source.itemAt(event.pos()) print(item.text()) return True except Exception as e: print(e) return super().eventFilter(source, event) except Exception as e: print(e) from mainUI import MainMenuItems from mainUI import reTranslateMain from download_script import detect_fname from download_script import detect_fsize from download_script import check_connection from download_script import download # MenuBar things from MenuBar import exitAction from MenuBar import MenuCreate from MenuBar import about from MenuBar import reTranslateAbout from MenuBar import SettingsMenu from MenuBar import SetSettings from MenuBar import restartforsettings from MenuBar import reTranslateSettings # Theming Things from theming import init_themes_main from theming import init_themes_add_dialog from theming import init_themes_settings_dialog from theming import init_themes_about_dialog def WindowSettings(self): self.setWindowTitle("Dream Download Manager") # self.setWindowIcon(QIcon("logo.png")) #self.setFixedSize(485, 375) #self.setMinimumSize(325, 240) def ConfigSettings(self): self.settings = QSettings("DDM", "DreamDownloadManager") print(self.settings.fileName()) if self.settings.contains('theme_selection'): self.selected_theme = self.settings.value('theme_selection') else: self.settings.setValue('theme_selection', 'Dark') if self.settings.contains('selected_lang'): self.sel_lang = self.settings.value('selected_lang') else: self.settings.setValue('selected_lang', 'en')
class AddUserFace(QDialog): def __init__(self, image): super(AddUserFace, self).__init__() self.setFixedSize(300, 275) self.setWindowIcon(QIcon('icons/add.png')) self.setWindowTitle('添加') self.rb_select = QRadioButton("选择", self) self.rb_select.setGeometry(70, 20, 50, 26) self.rb_select.toggled.connect(self.toggle) self.rb_new = QRadioButton('新建', self) self.rb_new.setGeometry(120, 20, 50, 26) self.rb_new.toggled.connect(self.toggle) lbl_name = QLabel('名称', self) lbl_name.setGeometry(10, 70, 50, 26) lbl_name.setAlignment(Qt.AlignCenter) users = DbHelper.query_users() self.cb_user = QComboBox(self) self.cb_user.setGeometry(70, 70, 200, 26) self.le_user = QLineEdit(self) self.le_user.setGeometry(70, 70, 200, 26) if users is not None and len(users) > 0: self.rb_select.setChecked(True) for user in users: self.cb_user.addItem(user[1], userData=user) else: self.rb_select.setDisabled(True) self.rb_new.setChecked(True) lbl_face = QLabel('人脸', self) lbl_face.setGeometry(10, 140, 50, 26) lbl_face.setAlignment(Qt.AlignCenter) self.btn_save = QPushButton(self) self.btn_save.setText('保存') self.btn_save.setGeometry(10, 234, 280, 30) self.btn_save.clicked.connect(self.save) self.cache_faces = {} self.face = None faces = HaarcascadeDetective.get_faces(image) index = 0 for face in faces: viewer_face = QPushButton(self) viewer_face.setGeometry(70 * (index + 1), 120, 60, 60) viewer_face.setIconSize(QSize(56, 56)) img = cv2.cvtColor(face, cv2.COLOR_BGR2RGB) image = QImage(img, img.shape[1], img.shape[0], img.shape[1] * 3, QImage.Format_RGB888) pix_map = QPixmap.fromImage(image) viewer_face.setIcon(QIcon(pix_map)) viewer_face.clicked.connect(self.select_face) self.cache_faces[viewer_face] = face if index == 0: self.face = face viewer_face.setStyleSheet( 'border-color: rgb(255, 0, 0);border-style: outset;border-width: 2px;' ) index += 1 if index > 3: break if index == 0: Tool.show_msg_box("未检测到人脸信息") def select_face(self): sender = self.sender() for btn in self.cache_faces: btn.setStyleSheet('border-style: none') sender.setStyleSheet( "border-color: rgb(255, 0, 0);border-style: outset;border-width: 2px;" ) self.face = self.cache_faces[btn] def toggle(self): if self.rb_new.isChecked(): self.cb_user.hide() self.le_user.show() elif self.rb_select.isChecked(): self.le_user.hide() self.cb_user.show() def save(self): if self.face is None: return self.btn_save.setDisabled(True) if self.rb_new.isChecked(): user_name = self.le_user.text().strip(' ') if not user_name.replace(' ', '').encode("utf-8").isalpha(): Tool.show_msg_box('只支持英文字母和空格~') self.le_name.setFocus() return user_id = DbHelper.insert_user(user_name) else: user_id = self.cb_user.currentData()[0] if not os.path.exists("faces"): os.mkdir("faces") if not os.path.exists('faces/{}'.format(user_id)): os.mkdir('faces/{}'.format(user_id)) face = 'faces/{}/{}.png'.format(user_id, time.time()) cv2.imwrite(face, self.face) self.close()
def updateEditorGeometry(self, editor: QtWidgets.QLineEdit, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None: editor.setGeometry(option.rect)
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(597, 351) font = QtGui.QFont() font.setFamily("FreeMono") MainWindow.setFont(font) MainWindow.setStyleSheet("background-color: rgb(255,255,255);") self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(380, 40, 200, 30)) self.pushButton.setMinimumSize(QtCore.QSize(100, 0)) self.pushButton.setStyleSheet( "QPushButton::hover{background-color: rgb(192, 225, 255);}\n" "QPushButton{ background-color: rgb(230, 241, 255);" " border-radius: 5px; border: 1px solid rgb(190, 220, 255)}") self.pushButton.setObjectName("pushButton") self.lineEdit = QLineEdit(self.centralwidget) self.lineEdit.setGeometry(QtCore.QRect(20, 140, 250, 27)) self.lineEdit.setStyleSheet("border: 1px solid rgb(235, 235, 235);") self.lineEdit.setObjectName("lineEdit") self.label = QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(20, 120, 68, 17)) self.label.setObjectName("label") self.label_2 = QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(330, 120, 250, 17)) self.label_2.setObjectName("label_2") self.pushButton_2 = QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(380, 260, 200, 30)) self.pushButton_2.setMinimumSize(QtCore.QSize(100, 0)) self.pushButton_2.setStyleSheet( "QPushButton::hover{background-color: rgb(192, 225, 255);}\n" "QPushButton{ background-color: rgb(230, 241, 255);" " border-radius: 5px; border: 1px solid rgb(190, 220, 255)}") self.pushButton_2.setObjectName("pushButton_2") self.lineEdit_3 = QLineEdit(self.centralwidget) self.lineEdit_3.setGeometry(QtCore.QRect(330, 140, 250, 27)) self.lineEdit_3.setStyleSheet("border: 1px solid rgb(235, 235, 235);") self.lineEdit_3.setObjectName("lineEdit_3") self.label_3 = QLabel(self.centralwidget) self.label_3.setGeometry(QtCore.QRect(20, 20, 261, 17)) self.label_3.setObjectName("label_3") self.lineEdit_4 = QLineEdit(self.centralwidget) self.lineEdit_4.setGeometry(QtCore.QRect(20, 40, 250, 27)) self.lineEdit_4.setStyleSheet("border: 1px solid rgb(235, 235, 235);") self.lineEdit_4.setObjectName("lineEdit_4") self.lineEdit_5 = QLineEdit(self.centralwidget) self.lineEdit_5.setGeometry(QtCore.QRect(330, 210, 250, 27)) self.lineEdit_5.setStyleSheet("border: 1px solid rgb(235, 235, 235);") self.lineEdit_5.setObjectName("lineEdit_5") self.label_5 = QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(330, 190, 201, 17)) self.label_5.setObjectName("label_5") MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QApplication.translate("MainWindow", "Настройка роутера", None)) self.pushButton.setText( QApplication.translate("MainWindow", "Подключиться", None)) self.label.setText(QApplication.translate("MainWindow", "SSID", None)) self.label_2.setText( QApplication.translate("MainWindow", "Пароль (минимум 8 символов)", None)) self.pushButton_2.setText( QApplication.translate("MainWindow", "Настроить", None)) self.label_3.setText( QApplication.translate("MainWindow", "Модель подключенного устройства", None)) self.label_5.setText( QApplication.translate("MainWindow", "Пароль доступа к роутеру", None))