Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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("注册失败")
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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))
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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))
Ejemplo n.º 8
0
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()
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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()
Ejemplo n.º 12
0
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.')
Ejemplo n.º 13
0
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)
Ejemplo n.º 15
0
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())
Ejemplo n.º 16
0
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))
        '''
Ejemplo n.º 18
0
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))
Ejemplo n.º 19
0
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))
Ejemplo n.º 20
0
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))
Ejemplo n.º 21
0
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. 😭😭")
Ejemplo n.º 23
0
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)
Ejemplo n.º 24
0
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()
Ejemplo n.º 25
0
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")
Ejemplo n.º 26
0
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')
Ejemplo n.º 27
0
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()
Ejemplo n.º 28
0
 def updateEditorGeometry(self, editor: QtWidgets.QLineEdit, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None:
     editor.setGeometry(option.rect)
Ejemplo n.º 29
0
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))