コード例 #1
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(450, 440)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.logoGUI = QtWidgets.QLabel(self.centralwidget)
        self.logoGUI.setGeometry(QtCore.QRect(120, 40, 221, 221))
        self.logoGUI.setText("")
        self.logoGUI.setPixmap(QtGui.QPixmap("프로토타입_2.png"))
        self.logoGUI.setObjectName("logoGUI")
        
        self.idLabel = QtWidgets.QLabel(self.centralwidget)
        self.idLabel.setGeometry(QtCore.QRect(120, 290, 91, 16))      
        font = QtGui.QFont()
        font.setFamily("KoPub돋움체 Medium")
        font.setPointSize(12)
        self.idLabel.setFont(font)
        self.idLabel.setObjectName("idLabel")

        self.pwLabel = QtWidgets.QLabel(self.centralwidget)
        self.pwLabel.setGeometry(QtCore.QRect(120, 330, 71, 16))
        font = QtGui.QFont()
        font.setFamily("KoPub돋움체 Medium")
        font.setPointSize(12)
        self.pwLabel.setFont(font)
        self.pwLabel.setObjectName("pwLabel")

        self.idTextFIeld = QLineEdit(self.centralwidget)
        self.idTextField.move(200,280)
        sefl.idTextField.resize(131,31)
        #self.idTextFIeld.setGeometry(QtCore.QRect(200, 280, 131, 31))
        font = QtGui.QFont()
        font.setFamily("KoPub돋움체 Medium")
        font.setPointSize(12)
        self.idTextFIeld.setFont(font)
        self.idTextFIeld.setPlainText("")
        self.idTextFIeld.setObjectName("idTextFIeld")

        self.pwTextFIeld = QLineEdit(self.centralwidget)
        self.pwTextField.move(200,280)
        sefl.pwTextField.resize(131,31)

        #self.pwTextField = QtWidgets.QPlainTextEdit(self.centralwidget)
        #self.pwTextField.setGeometry(QtCore.QRect(200, 320, 131, 31))
        font = QtGui.QFont()
        font.setFamily("KoPub돋움체 Medium")
        font.setPointSize(12)
        self.pwTextField.setFont(font)
        self.pwTextField.setPlainText("")
        self.pwTextField.setObjectName("pwTextField")

        self.loginButton = QtWidgets.QPushButton(self.centralwidget)
        self.loginButton.setGeometry(QtCore.QRect(190, 360, 81, 31))
        font = QtGui.QFont()
        font.setFamily("KoPub돋움체 Medium")
        font.setPointSize(12)

        self.loginButton.setFont(font)
        self.loginButton.setObjectName("loginButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 450, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

        self.loginButton.clicked.connect(self.loginBtn_clicked)
コード例 #2
0
ファイル: main.py プロジェクト: felipedavi/MyBrowserProject
back_button.setGeometry(140, 3, 25, 25)
back_button.setStyleSheet("background-color:transparent;")
back_button_icon = QIcon()
back_button_icon.addPixmap(QPixmap("back.png"))
back_button.setIcon(back_button_icon)
back_button.clicked.connect(back)

forward_button = QToolButton(mainWindow)
forward_button.setGeometry(180, 3, 25, 25)
forward_button.setStyleSheet("background-color:transparent;")
forward_button_icon = QIcon()
forward_button_icon.addPixmap(QPixmap("forward.png"))
forward_button.setIcon(forward_button_icon)
forward_button.clicked.connect(forward)

go_line = QLineEdit(mainWindow)
go_line.setGeometry(280, 3, 300, 25)
go_line.setStyleSheet("background-color:rgb(255,255,255);")

go_button = QToolButton(mainWindow)
go_button.setGeometry(600, 3, 25, 25)
go_button.setStyleSheet("background-color:transparent;")
go_button_icon = QIcon()
go_button_icon.addPixmap(QPixmap("go.png"))
go_button.setIcon(go_button_icon)
go_button.clicked.connect(go)

facebook_button = QToolButton(mainWindow)
facebook_button.setGeometry(905, 3, 50, 25)
facebook_button.setStyleSheet("background-color:transparent;")
facebook_button_icon = QIcon()
コード例 #3
0
    def initUI(self):
        self.setGeometry(400, 400, 900, 600)
        self.setWindowTitle('Система отеля (управляющий)')

        self.info_label = QLabel("Инфо:", self)
        self.info_label.move(150, 10)
        self.info_label.resize(self.info_label.sizeHint())
        self.info_label.setAutoFillBackground(True)
        p = self.info_label.palette()
        p.setColor(self.info_label.backgroundRole(), Qt.gray)
        self.info_label.setPalette(p)

        # Управление администраторами гостиницы

        self.login_of_admin_label = QLabel("Логин:", self)
        self.login_of_admin_label.move(10, 70)
        self.login_of_admin_label.resize(self.login_of_admin_label.sizeHint())

        self.login_of_admin_linde_edit = QLineEdit(self)
        self.login_of_admin_linde_edit.move(175, 70)
        self.login_of_admin_linde_edit.resize(200, 20)

        self.password_admin_label = QLabel("Пароль:", self)
        self.password_admin_label.move(10, 100)
        self.password_admin_label.resize(self.password_admin_label.sizeHint())

        self.password_admin_linde_edit = QLineEdit(self)
        self.password_admin_linde_edit.move(175, 100)
        self.password_admin_linde_edit.resize(200, 20)

        self.password_admin_linde_edit2 = QLineEdit(self)
        self.password_admin_linde_edit2.move(395, 100)
        self.password_admin_linde_edit2.resize(200, 20)

        self.suname_admin_label = QLabel("Фамилия:", self)
        self.suname_admin_label.move(10, 130)
        self.suname_admin_label.resize(self.suname_admin_label.sizeHint())

        self.suname_admin_linde_edit = QLineEdit(self)
        self.suname_admin_linde_edit.move(175, 130)
        self.suname_admin_linde_edit.resize(200, 20)

        self.suname_admin_linde_edit2 = QLineEdit(self)
        self.suname_admin_linde_edit2.move(395, 130)
        self.suname_admin_linde_edit2.resize(200, 20)

        self.name_admin_label = QLabel("Имя:", self)
        self.name_admin_label.move(10, 160)
        self.name_admin_label.resize(self.name_admin_label.sizeHint())

        self.name_admin_linde_edit = QLineEdit(self)
        self.name_admin_linde_edit.move(175, 160)
        self.name_admin_linde_edit.resize(200, 20)

        self.name_admin_linde_edit2 = QLineEdit(self)
        self.name_admin_linde_edit2.move(395, 160)
        self.name_admin_linde_edit2.resize(200, 20)

        self.otchestvo_admin_label = QLabel("Отчество:", self)
        self.otchestvo_admin_label.move(10, 190)
        self.otchestvo_admin_label.resize(
            self.otchestvo_admin_label.sizeHint())

        self.otchestvo_admin_linde_edit = QLineEdit(self)
        self.otchestvo_admin_linde_edit.move(175, 190)
        self.otchestvo_admin_linde_edit.resize(200, 20)

        self.otchestvo_admin_linde_edit2 = QLineEdit(self)
        self.otchestvo_admin_linde_edit2.move(395, 190)
        self.otchestvo_admin_linde_edit2.resize(200, 20)

        self.number_of_prhone_admin_label = QLabel("Номер телефона:", self)
        self.number_of_prhone_admin_label.move(10, 220)
        self.number_of_prhone_admin_label.resize(
            self.number_of_prhone_admin_label.sizeHint())

        self.number_of_prhone_admin_linde_edit = QLineEdit(self)
        self.number_of_prhone_admin_linde_edit.move(175, 220)
        self.number_of_prhone_admin_linde_edit.resize(200, 20)

        self.number_of_prhone_admin_linde_edit2 = QLineEdit(self)
        self.number_of_prhone_admin_linde_edit2.move(395, 220)
        self.number_of_prhone_admin_linde_edit2.resize(200, 20)

        self.hotel_admin_label = QLabel("Гостиница:", self)
        self.hotel_admin_label.move(10, 250)
        self.hotel_admin_label.resize(self.hotel_admin_label.sizeHint())

        self.hotel_admin_linde_edit = QLineEdit(self)
        self.hotel_admin_linde_edit.move(175, 250)
        self.hotel_admin_linde_edit.resize(200, 20)

        self.hotel_admin_linde_edit2 = QLineEdit(self)
        self.hotel_admin_linde_edit2.move(395, 250)
        self.hotel_admin_linde_edit2.resize(200, 20)

        self.admin_list = QComboBox(self)
        self.admin_list.move(390, 65)
        self.admin_list.resize(200, 30)
        self.admin_list.currentTextChanged.connect(self.update_admins)

        # self.admin_list.addItems()

        self.admin_list2 = QComboBox(self)
        self.admin_list2.move(600, 65)
        self.admin_list2.resize(200, 30)
        # self.admin_list2.addItems()

        self.add_admin = QPushButton("Зарегистрировать\nадминистратора", self)
        self.add_admin.move(175, 270)
        self.add_admin.resize(200, 50)
        self.add_admin.pressed.connect(self.addadmin)

        self.download_admin = QPushButton(
            "Загрузить xls файл\nс администраторами", self)
        self.download_admin.move(10, 350)
        self.download_admin.resize(200, 50)
        self.download_admin.pressed.connect(self.downoladadmin)

        self.delete_admin = QPushButton("Удалить администратора", self)
        self.delete_admin.move(600, 90)
        self.delete_admin.resize(200, 30)
        self.delete_admin.pressed.connect(self.deleteadmin)

        self.remake_admin = QPushButton(
            "Обновить информацию\nоб администраторе", self)
        self.remake_admin.move(395, 270)
        self.remake_admin.resize(200, 50)
        self.remake_admin.pressed.connect(self.change_info_admin)

        self.tableWidget_admin = QTableWidget(self)
        self.tableWidget_admin.setColumnCount(9)
        self.tableWidget_admin.move(250, 350)
        self.tableWidget_admin.resize(800, 200)
        self.tableWidget_admin.setHorizontalHeaderItem(
            0, QTableWidgetItem('логин'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            1, QTableWidgetItem('пароль'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            2, QTableWidgetItem('фамилия'))
        self.tableWidget_admin.setHorizontalHeaderItem(3,
                                                       QTableWidgetItem('имя'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            4, QTableWidgetItem('отчество'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            5, QTableWidgetItem('номер_телефона'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            6, QTableWidgetItem('гостиница'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            7, QTableWidgetItem('заблокирован'))
        self.tableWidget_admin.setHorizontalHeaderItem(
            8, QTableWidgetItem('причина_блокировки'))

        # Гостиница

        self.number_of_hotel_label = QLabel("Номер гостиницы в сети:", self)
        self.number_of_hotel_label.move(10, 70)
        self.number_of_hotel_label.resize(
            self.number_of_hotel_label.sizeHint())

        self.number_of_hotel_linde_edit = QLineEdit(self)
        self.number_of_hotel_linde_edit.move(175, 70)
        self.number_of_hotel_linde_edit.resize(200, 20)

        self.level_hotel_label = QLabel("Количество этажей:", self)
        self.level_hotel_label.move(10, 100)
        self.level_hotel_label.resize(self.level_hotel_label.sizeHint())

        self.level_hotel_linde_edit = QLineEdit(self)
        self.level_hotel_linde_edit.move(175, 100)
        self.level_hotel_linde_edit.resize(200, 20)

        self.level_hotel_linde_edit2 = QLineEdit(self)
        self.level_hotel_linde_edit2.move(395, 100)
        self.level_hotel_linde_edit2.resize(200, 20)

        self.room_hotel_label = QLabel("Количество номеров:", self)
        self.room_hotel_label.move(10, 130)
        self.room_hotel_label.resize(self.room_hotel_label.sizeHint())

        self.room_hotel_linde_edit = QLineEdit(self)
        self.room_hotel_linde_edit.move(175, 130)
        self.room_hotel_linde_edit.resize(200, 20)

        self.room_hotel_linde_edit2 = QLineEdit(self)
        self.room_hotel_linde_edit2.move(395, 130)
        self.room_hotel_linde_edit2.resize(200, 20)

        self.country_hotel_label = QLabel("Страна:", self)
        self.country_hotel_label.move(10, 160)
        self.country_hotel_label.resize(self.country_hotel_label.sizeHint())

        self.country_hotel_linde_edit = QLineEdit(self)
        self.country_hotel_linde_edit.move(175, 160)
        self.country_hotel_linde_edit.resize(200, 20)

        self.country_hotel_linde_edit2 = QLineEdit(self)
        self.country_hotel_linde_edit2.move(395, 160)
        self.country_hotel_linde_edit2.resize(200, 20)

        self.city_hotel_label = QLabel("Город:", self)
        self.city_hotel_label.move(10, 190)
        self.city_hotel_label.resize(self.city_hotel_label.sizeHint())

        self.city_hotel_linde_edit = QLineEdit(self)
        self.city_hotel_linde_edit.move(175, 190)
        self.city_hotel_linde_edit.resize(200, 20)

        self.city_hotel_linde_edit2 = QLineEdit(self)
        self.city_hotel_linde_edit2.move(395, 190)
        self.city_hotel_linde_edit2.resize(200, 20)

        self.street_hotel_label = QLabel("Улица:", self)
        self.street_hotel_label.move(10, 220)
        self.street_hotel_label.resize(self.street_hotel_label.sizeHint())

        self.street_hotel_linde_edit = QLineEdit(self)
        self.street_hotel_linde_edit.move(175, 220)
        self.street_hotel_linde_edit.resize(200, 20)

        self.street_hotel_linde_edit2 = QLineEdit(self)
        self.street_hotel_linde_edit2.move(395, 220)
        self.street_hotel_linde_edit2.resize(200, 20)

        self.house_hotel_label = QLabel("Дом:", self)
        self.house_hotel_label.move(10, 250)
        self.house_hotel_label.resize(self.house_hotel_label.sizeHint())

        self.house_hotel_linde_edit = QLineEdit(self)
        self.house_hotel_linde_edit.move(175, 250)
        self.house_hotel_linde_edit.resize(200, 20)

        self.house_hotel_linde_edit2 = QLineEdit(self)
        self.house_hotel_linde_edit2.move(395, 250)
        self.house_hotel_linde_edit2.resize(200, 20)

        self.hotels_list = QComboBox(self)
        self.hotels_list.move(390, 65)
        self.hotels_list.resize(200, 30)
        self.hotels_list.currentTextChanged.connect(self.update_hotels)
        #self.hotels_list.addItems()

        self.hotels_list2 = QComboBox(self)
        self.hotels_list2.move(600, 65)
        self.hotels_list2.resize(200, 30)
        # self.hotels_list2.addItems()

        self.add_hotel = QPushButton("Создать гостиницу", self)
        self.add_hotel.move(175, 270)
        self.add_hotel.resize(200, 30)
        self.add_hotel.pressed.connect(self.addhotel)

        self.delete_hotel = QPushButton("Удалить гостиницу", self)
        self.delete_hotel.move(600, 90)
        self.delete_hotel.resize(200, 30)
        self.delete_hotel.pressed.connect(self.deletehotel)

        self.remake_hotel = QPushButton("Редактировать гостиницу", self)
        self.remake_hotel.move(395, 270)
        self.remake_hotel.resize(200, 30)
        self.remake_hotel.pressed.connect(self.change_info_hotel)

        self.label_filter = QLabel("Фильтры:", self)
        self.label_filter.move(10, 350)
        self.label_filter.resize(self.label_filter.sizeHint())

        self.label_filter_country = QLabel("Страна:", self)
        self.label_filter_country.move(10, 380)
        self.label_filter_country.resize(self.label_filter.sizeHint())

        self.box_filter_country = QComboBox(self)
        self.box_filter_country.move(60, 375)
        self.box_filter_country.resize(100, 30)

        self.check_filter_country = QCheckBox(self)
        self.check_filter_country.move(170, 380)
        self.check_filter_country.resize(self.label_filter.sizeHint())
        self.check_filter_country.stateChanged.connect(
            self.check_filter_country_change)

        self.label_filter_city = QLabel("Город:", self)
        self.label_filter_city.move(10, 410)
        self.label_filter_city.resize(self.label_filter.sizeHint())

        self.box_filter_city = QComboBox(self)
        self.box_filter_city.move(60, 405)
        self.box_filter_city.resize(100, 30)

        self.check_filter_city = QCheckBox(self)
        self.check_filter_city.move(170, 410)
        self.check_filter_city.resize(self.label_filter.sizeHint())
        self.check_filter_city.stateChanged.connect(
            self.check_filter_city_change)

        # Блокировка

        self.admins_label = QLabel("Пользователи:", self)
        self.admins_label.move(20, 70)
        self.admins_label.resize(self.admins_label.sizeHint())

        self.admins_list = QComboBox(self)
        self.admins_list.move(115, 65)
        self.admins_list.resize(200, 30)
        self.admins_list.addItems(self.login_admins)

        self.button_block = QPushButton("Заблокировать пользователя", self)
        self.button_block.move(190, 100)
        self.button_block.resize(300, 30)
        self.button_block.pressed.connect(self.block_admin)

        self.prichina = QLabel("Причина:", self)
        self.prichina.move(330, 70)
        self.prichina.resize(self.prichina.sizeHint())

        self.prichina_line_edit = QLineEdit(self)
        self.prichina_line_edit.move(400, 68)
        self.prichina_line_edit.resize(200, 20)

        self.tableWidget_hotel = QTableWidget(self)
        self.tableWidget_hotel.setColumnCount(7)
        self.tableWidget_hotel.move(250, 350)
        self.tableWidget_hotel.resize(800, 200)
        self.tableWidget_hotel.setHorizontalHeaderItem(
            0, QTableWidgetItem('название гостиницы'))
        self.tableWidget_hotel.setHorizontalHeaderItem(
            1, QTableWidgetItem('количество этажей'))
        self.tableWidget_hotel.setHorizontalHeaderItem(
            2, QTableWidgetItem('количество номеров'))
        self.tableWidget_hotel.setHorizontalHeaderItem(
            3, QTableWidgetItem('страна'))
        self.tableWidget_hotel.setHorizontalHeaderItem(
            4, QTableWidgetItem('город'))
        self.tableWidget_hotel.setHorizontalHeaderItem(
            5, QTableWidgetItem('улица'))
        self.tableWidget_hotel.setHorizontalHeaderItem(6,
                                                       QTableWidgetItem('дом'))
        # неудачные попытки входа
        self.tableWidget_bt = QTableWidget(self)
        self.tableWidget_bt.setColumnCount(3)
        self.tableWidget_bt.move(10, 60)
        self.tableWidget_bt.resize(500, 400)
        self.tableWidget_bt.setHorizontalHeaderItem(0,
                                                    QTableWidgetItem('Логин'))
        self.tableWidget_bt.setHorizontalHeaderItem(1,
                                                    QTableWidgetItem('Пароль'))
        self.tableWidget_bt.setHorizontalHeaderItem(2,
                                                    QTableWidgetItem('Время'))
コード例 #4
0
    def initUI(self):
        """combo_daq = []
                for i in list(range(8)):
                        exec("ch%d" % i)
                        "ch%d"%i=QComboBox(self)
                        "ch%d"%i.addItem("Not_use")
                        #exec("ch%d.addItem('Ge')" % i)
                        #exec("ch%d.addItem('CsI')" % i)
                        #exec("ch%d.addItem('LqS')" % i)
                 for i in list(range(8)):
                        combo_daq[i]=QComboBox
                        combo_daq[i].addItem("Not_use")
                        combo_daq[i].addItem("Ge")
                        combo_daq[i].addItem("CsI")
                        combo_daq[i].addItem("LS")
                """
        combo_daq = QComboBox(self)
        combo_daq.addItem("kill")
        combo_daq.addItem("Ge")
        combo_daq.addItem("CsI")
        combo_daq.addItem("Ls")

        combo_beam = QComboBox(self)
        combo_beam.addItem("30 MeV")
        combo_beam.addItem("246 MeV")

        combo_RI = QComboBox(self)
        combo_RI.addItem("137Cs")
        combo_RI.addItem("60Co")
        combo_RI.addItem("22Na")
        combo_RI.addItem("252Cf")
        combo_RI.addItem("241AmBe")
        combo_RI.addItem("Background")

        event = QLabel("n")
        time = QLabel("t")
        source = QLabel("Source")
        beam = QLabel("Beam")
        RI = QLabel("RI")
        event_edit = QLineEdit(self)
        time_edit = QLineEdit(self)

        Run = QPushButton("Run", self)
        Edit = QPushButton("Edit", self)
        Edit.clicked.connect(self.EditbuttonClicked)
        Stop = QPushButton("Stop", self)

        ch = list(range(8))
        for i in list(range(8)):
            ch[i] = QLabel("ch%d" % i, self)

        layout = QGridLayout()
        """for i in list(range(8)):
                        layout.addWidget(ch[i], i, 0)
                """
        for i in list(range(8)):
            layout.addWidget(ch[i], i, 0)
        """layout.addWidget(ch, 0, 1)
                layout.addWidget(ch, 1, 1)
                layout.addWidget(ch, 2, 1)
                layout.addWidget(ch, 3, 1)
                layout.addWidget(ch, 4, 1)
                layout.addWidget(ch, 5, 1)
                layout.addWidget(ch, 6, 1)
                layout.addWidget(ch, 7, 1)"""

        layout.addWidget(combo_daq, 0, 1)
        layout.addWidget(combo_daq, 1, 1)
        layout.addWidget(combo_daq, 2, 1)
        layout.addWidget(combo_daq, 3, 1)
        layout.addWidget(combo_daq, 4, 1)
        layout.addWidget(combo_daq, 5, 1)
        layout.addWidget(combo_daq, 6, 1)
        layout.addWidget(combo_daq, 7, 1)
        layout.addWidget(event, 10, 0)
        layout.addWidget(event_edit, 10, 1)
        layout.addWidget(time, 11, 0)
        layout.addWidget(time_edit, 11, 1)
        layout.addWidget(source, 12, 0)
        layout.addWidget(beam, 13, 0)
        layout.addWidget(RI, 13, 1)
        layout.addWidget(combo_beam, 14, 0)
        layout.addWidget(combo_RI, 14, 1)
        layout.addWidget(Run, 15, 4)
        layout.addWidget(Edit, 15, 2)
        layout.addWidget(Stop, 15, 0)
        self.setLayout(layout)

        self.setGeometry(100, 200, 300, 400)
        self.show()
コード例 #5
0
ファイル: main.py プロジェクト: asanza/Moto
    def initUI(self):
        
        self.resize(800, 600)
        self.centre()
        
        # Set background colour of main window to white
        palette = QPalette()
        palette.setColor(QPalette.Background,Qt.white)
        self.setPalette(palette)
        
        self.setWindowTitle('SPE Moto | Induction Motor Parameter Estimation Tool')
        self.setWindowIcon(QIcon('icons\motor.png'))    
              
        """
        Actions
        """
        exitAction = QAction(QIcon('icons\exit.png'), '&Exit', self)        
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(QApplication.instance().quit)
        
        loadAction = QAction('&Open File...', self)
        loadAction.setStatusTip('Open file and load motor data')
        loadAction.triggered.connect(self.load_action)
        
        saveAction = QAction('&Save As...', self)
        saveAction.setStatusTip('Save motor data')
        saveAction.triggered.connect(self.save_action)
        
        aboutAction = QAction('&About Moto', self)
        aboutAction.setStatusTip('About Moto')
        aboutAction.triggered.connect(self.about_dialog)
        
        helpAction = QAction('&User Manual', self)
        helpAction.setShortcut('F1')
        helpAction.setStatusTip('Moto user documentation')
        helpAction.triggered.connect(self.user_manual)
        
        """
        Menubar
        """
        menu_bar = self.menuBar() 
        fileMenu = menu_bar.addMenu('&File')
        fileMenu.addAction(loadAction)
        fileMenu.addAction(saveAction)
        fileMenu.addAction(exitAction)
        helpMenu = menu_bar.addMenu('&Help')
        helpMenu.addAction(helpAction)
        helpMenu.addSeparator()
        helpMenu.addAction(aboutAction)
        
        """
        Main Screen
        """
        
        heading_font = QFont()
        heading_font.setPointSize(10)
        heading_font.setBold(True)
        
        ################
        # Motor details
        ################
        
        header1 = QLabel('Motor')
        #header1.setMinimumWidth(50)
        header1.setMinimumHeight(30)
        header1.setFont(heading_font)
        
        label1 = QLabel('Description')
        #label1.setMinimumWidth(50)
        
        self.le1 = QLineEdit()
        #self.le1.setMinimumWidth(150)
        self.le1.setText(str(globals.motor_data["description"]))
               
        label2 = QLabel('Synchronous speed')
        #label2.setMinimumWidth(50)
        
        self.le2 = QLineEdit()
        #self.le2.setMinimumWidth(50)
        self.le2.setText(str(globals.motor_data["sync_speed"]))
        
        label2a = QLabel('rpm')
        #label2a.setMinimumWidth(30)
 
        label3 = QLabel('Rated speed')
        #label3.setMinimumWidth(50)
        
        self.le3 = QLineEdit()
        #self.le3.setMinimumWidth(50)
        self.le3.setText(str(globals.motor_data["rated_speed"]))
        
        label3a = QLabel('rpm')
        #label3a.setMinimumWidth(30)
           
        label4 = QLabel('Rated power factor')
        #label4.setMinimumWidth(50)
        
        self.le4 = QLineEdit()
        #self.le4.setMinimumWidth(50)
        self.le4.setText(str(globals.motor_data["rated_pf"]))
        
        label4a = QLabel('pf')
        #label4a.setMinimumWidth(20)
        
        label5 = QLabel('Rated efficiency')
        #label5.setMinimumWidth(50)
        
        self.le5 = QLineEdit()
        #self.le5.setMinimumWidth(50)
        self.le5.setText(str(globals.motor_data["rated_eff"]))
        
        label5a = QLabel('pu')
        #label5a.setMinimumWidth(20)

        label6 = QLabel('Breakdown torque')
        #label6.setMinimumWidth(50)
        
        self.le6 = QLineEdit()
        #self.le6.setMinimumWidth(50)
        self.le6.setText(str(globals.motor_data["T_b"]))
        
        label6a = QLabel('T/Tn')
        #label6a.setMinimumWidth(40)
        
        label7 = QLabel('Locked rotor torque')
        #label7.setMinimumWidth(50)
        
        self.le7 = QLineEdit()
        #self.le7.setMinimumWidth(50)
        self.le7.setText(str(globals.motor_data["T_lr"]))
        
        label7a = QLabel('T/Tn')
        #label7a.setMinimumWidth(40)
        
        label8 = QLabel('Locked rotor current')
        #label8.setMinimumWidth(50)
        
        self.le8 = QLineEdit()
        #self.le8.setMinimumWidth(50)
        self.le8.setText(str(globals.motor_data["I_lr"]))
        
        label8a = QLabel('pu')
        #label8a.setMinimumWidth(40)

        label_rp = QLabel('Rated Power')
        self.lex9 = QLineEdit()
        self.lex9.setText(str(globals.motor_data["rated_power"]))
        labelex9 = QLabel('Kw')

        label_ri = QLabel('Rated Current')
        self.lex10 = QLineEdit()
        self.lex10.setText(str(globals.motor_data["rated_current"]))
        labelex10 = QLabel('I')

        label_rv = QLabel('Rated Voltage')
        self.lex11 = QLineEdit()
        self.lex11.setText(str(globals.motor_data["rated_voltage"]))
        labelex11 = QLabel('V')

        ########
        # Model
        ########
        
        header2 = QLabel('Model')
        header2.setMinimumHeight(40)
        header2.setFont(heading_font)
        
        label_model = QLabel('Model')
        #label_model.setMinimumWidth(150)
        
        self.combo_model = QComboBox()
        self.combo_model.addItem("Single cage")
        # self.combo_model.addItem("Single cage w/o core losses")
        self.combo_model.addItem("Double cage")
        self.combo_model.setCurrentIndex(1)
        
        self.img1 = QLabel()
        self.img1.setPixmap(QPixmap('images\dbl_cage.png'))
        
        #####################
        # Algorithm settings
        #####################
        
        header3 = QLabel('Settings')
        header3.setMinimumHeight(40)
        header3.setFont(heading_font)
        
        label9 = QLabel('Maximum # iterations')
        
        self.le9 = QLineEdit()
        self.le9.setText(str(globals.algo_data["max_iter"]))
        self.le9.setStatusTip('Maximum number of iterations allowed')
        
        label10 = QLabel('Convergence criterion')
        
        self.le10 = QLineEdit()
        self.le10.setText(str(globals.algo_data["conv_err"]))
        self.le10.setStatusTip('Squared error required to qualify for convergence')

        self.label11 = QLabel('Linear constraint k_r')
        
        self.le11 = QLineEdit()
        self.le11.setText(str(globals.algo_data["k_r"]))
        self.le11.setStatusTip('Linear constraint for Rs')

        self.label12 = QLabel('Linear constraint k_x')
        
        self.le12 = QLineEdit()
        self.le12.setText(str(globals.algo_data["k_x"]))
        self.le12.setStatusTip('Linear constraint for Xr2')
        
        # Genetic Algorithm Widgets
        ############################
        
        self.labeln_gen = QLabel('Maximum # generations')
        self.labeln_gen.setVisible(0)
        self.labelpop = QLabel('Members in population')
        self.labelpop.setVisible(0)
        self.labeln_r = QLabel('Members in mating pool')
        self.labeln_r.setVisible(0)
        self.labeln_e = QLabel('Elite children')
        self.labeln_e.setVisible(0)
        self.labelc_f = QLabel('Crossover fraction')
        self.labelc_f.setVisible(0)
        
        self.len_gen = QLineEdit()
        self.len_gen.setText(str(globals.algo_data["n_gen"]))
        self.len_gen.setStatusTip('Maximum number of generations allowed')
        self.len_gen.hide()
        
        self.lepop = QLineEdit()
        self.lepop.setText(str(globals.algo_data["pop"]))
        self.lepop.setStatusTip('Number of members in each generation')
        self.lepop.hide()
        
        self.len_r = QLineEdit()
        self.len_r.setText(str(globals.algo_data["n_r"]))
        self.len_r.setStatusTip('Number of members in a mating pool')
        self.len_r.hide()
        
        self.len_e = QLineEdit()
        self.len_e.setText(str(globals.algo_data["n_e"]))
        self.len_e.setStatusTip('Number of elite children')
        self.len_e.hide()
        
        self.lec_f = QLineEdit()
        self.lec_f.setText(str(globals.algo_data["c_f"]))
        self.lec_f.setStatusTip('Proportion of children spawned through crossover')
        self.lec_f.hide()
        
        
        label_algo = QLabel('Algorithm')
        #label_algo.setMinimumWidth(150)
        
        self.combo_algo = QComboBox()
        self.combo_algo.addItem("Newton-Raphson")
        self.combo_algo.addItem("Levenberg-Marquardt")
        self.combo_algo.addItem("Damped Newton-Raphson")
        self.combo_algo.addItem("Genetic Algorithm")
        self.combo_algo.addItem("Hybrid GA-NR")
        self.combo_algo.addItem("Hybrid GA-LM")
        self.combo_algo.addItem("Hybrid GA-DNR")
        
        calc_button = QPushButton("Calculate")
        calc_button.setStatusTip('Estimate equivalent circuit parameters')
        
        self.plot_button = QPushButton("Plot")
        self.plot_button.setDisabled(1)
        self.plot_button.setStatusTip('Plot torque-speed and current-speed curves')
        
        ####################
        # Algorithm results
        ####################
        
        header4 = QLabel('Results')
        #header4.setMinimumWidth(150)
        header4.setMinimumHeight(40)
        header4.setFont(heading_font)
        
        label13 = QLabel('R_s')
        #label13.setFixedWidth(50)
        
        self.leRs = QLineEdit()
        self.leRs.setStatusTip('Stator resistance (pu)')
        
        label14 = QLabel('X_s')
        #label14.setMinimumWidth(150)
        
        self.leXs = QLineEdit()
        self.leXs.setStatusTip('Stator reactance (pu)')
        
        label15 = QLabel('X_m')
        #label15.setMinimumWidth(150)
        
        self.leXm = QLineEdit()
        self.leXm.setStatusTip('Magnetising resistance (pu)')
        
        label16 = QLabel('X_r1')
        #label16.setMinimumWidth(150)
        
        self.leXr1 = QLineEdit()
        self.leXr1.setStatusTip('Inner cage rotor reactance (pu)')
        
        label17 = QLabel('R_r1')
        #label17.setMinimumWidth(150)
        
        self.leRr1 = QLineEdit()
        self.leRr1.setStatusTip('Inner cage rotor resistance (pu)')
        
        self.label18 = QLabel('X_r2')
        #label18.setMinimumWidth(150)
        
        self.leXr2 = QLineEdit()
        self.leXr2.setStatusTip('Outer cage rotor reactance (pu)')
        
        self.label19 = QLabel('R_r2')
        #label19.setMinimumWidth(150)
        
        self.leRr2 = QLineEdit()
        self.leRr2.setStatusTip('Outer cage rotor resistance (pu)')
        
        label20 = QLabel('R_c')
        #label20.setMinimumWidth(150)
        
        self.leRc = QLineEdit()
        self.leRc.setStatusTip('Core loss resistance (pu)')
        
        label21 = QLabel('Converged?')
        #label21.setMinimumWidth(150)
        
        self.leConv = QLineEdit()
        self.leConv.setStatusTip('Did algorithm converge?')
        
        label22 = QLabel('Squared Error')
        #label22.setMinimumWidth(150)
        
        self.leErr = QLineEdit()
        self.leErr.setStatusTip('Squared error of estimate')
        
        label23 = QLabel('Iterations')
        #label23.setMinimumWidth(150)
        
        self.leIter = QLineEdit()
        self.leIter.setStatusTip('Number of iterations / generations')
        
        ##############
        # Grid layout
        ##############
        
        grid = QGridLayout()
        
        # Motor details
        i = 0
        grid.addWidget(header1, i, 0)
        grid.addWidget(label1, i+1, 0)
        grid.addWidget(self.le1, i+1, 1, 1, 5)
        grid.addWidget(label2, i+2, 0)
        grid.addWidget(self.le2, i+2, 1)
        grid.addWidget(label2a, i+2, 2)
        grid.addWidget(label3, i+3, 0)
        grid.addWidget(self.le3, i+3, 1)
        grid.addWidget(label3a, i+3, 2)
        grid.addWidget(label4, i+4, 0)
        grid.addWidget(self.le4, i+4, 1)
        grid.addWidget(label4a, i+4, 2)
        grid.addWidget(label5, i+5, 0)
        grid.addWidget(self.le5, i+5, 1)
        grid.addWidget(label5a, i+5, 2)
        grid.addWidget(label6, i+3, 4)
        grid.addWidget(self.le6, i+3, 5)
        grid.addWidget(label6a, i+3, 6)
        grid.addWidget(label7, i+4, 4)
        grid.addWidget(self.le7, i+4, 5)
        grid.addWidget(label7a, i+4, 6)
        grid.addWidget(label8, i+5, 4)
        grid.addWidget(self.le8, i+5, 5)
        grid.addWidget(label8a, i+5, 6)
        grid.addWidget(label_rp, i+6, 0)
        grid.addWidget(self.lex9, i+6, 1)
        grid.addWidget(labelex9, i+6, 2)

        grid.addWidget(label_ri, i+7, 0)
        grid.addWidget(self.lex10, i+7, 1)
        grid.addWidget(labelex10, i+7, 2)

        grid.addWidget(label_rv, i+8, 0)
        grid.addWidget(self.lex11, i+8, 1)
        grid.addWidget(labelex11, i+8, 2)


        # Model
        i = 9
        #grid.addWidget(header2, i, 0)
        grid.addWidget(label_model, i+1, 0)
        grid.addWidget(self.combo_model, i+1, 1)
        grid.addWidget(self.img1, i+1, 3, i-7, 6)
        
        # Algorithm settings
        i = 12
        grid.addWidget(header3, i, 0)
        grid.addWidget(label_algo, i+1, 0)
        grid.addWidget(self.combo_algo, i+1, 1)
        grid.addWidget(label9, i+2, 0)
        grid.addWidget(self.le9, i+2, 1)
        grid.addWidget(label10, i+3, 0)
        grid.addWidget(self.le10, i+3, 1)
        grid.addWidget(self.label11, i+2, 3)
        grid.addWidget(self.le11, i+2, 4)
        grid.addWidget(self.label12, i+3, 3)
        grid.addWidget(self.le12, i+3, 4)
        
        # Genetic algorithm parameters
        grid.addWidget(self.labeln_gen, i+2, 3)
        grid.addWidget(self.len_gen, i+2, 4)
        grid.addWidget(self.labelpop, i+3, 3)
        grid.addWidget(self.lepop, i+3, 4)
        grid.addWidget(self.labeln_r, i+4, 3)
        grid.addWidget(self.len_r, i+4, 4)
        grid.addWidget(self.labeln_e, i+2, 5)
        grid.addWidget(self.len_e, i+2, 6)
        grid.addWidget(self.labelc_f, i+3, 5)
        grid.addWidget(self.lec_f, i+3, 6)
        
        grid.addWidget(calc_button, i+4, 5)
        grid.addWidget(self.plot_button, i+4, 6)
        
        # Algorithm results
        i = 17
        grid.addWidget(header4, i, 0)
        grid.addWidget(label13, i+1, 0)
        grid.addWidget(self.leRs, i+1, 1)
        grid.addWidget(label14, i+2, 0)
        grid.addWidget(self.leXs, i+2, 1)
        grid.addWidget(label15, i+3, 0)
        grid.addWidget(self.leXm, i+3, 1)
        grid.addWidget(label20, i+4, 0)
        grid.addWidget(self.leRc, i+4, 1)
        grid.addWidget(label16, i+1, 3)
        grid.addWidget(self.leXr1, i+1, 4)
        grid.addWidget(label17, i+2, 3)
        grid.addWidget(self.leRr1, i+2, 4)
        grid.addWidget(self.label18, i+3, 3)
        grid.addWidget(self.leXr2, i+3, 4)
        grid.addWidget(self.label19, i+4, 3)
        grid.addWidget(self.leRr2, i+4, 4)
        grid.addWidget(label21, i+1, 5)
        grid.addWidget(self.leConv, i+1, 6)
        grid.addWidget(label22, i+2, 5)
        grid.addWidget(self.leErr, i+2, 6)
        grid.addWidget(label23, i+3, 5)
        grid.addWidget(self.leIter, i+3, 6)
        
        grid.setAlignment(Qt.AlignTop)      

        main_screen = QWidget()
        main_screen.setLayout(grid)
        main_screen.setStatusTip('Ready')
        
        self.setCentralWidget(main_screen)
        
        # Event handlers
        calc_button.clicked.connect(self.calculate)
        self.plot_button.clicked.connect(self.plot_curves)
        
        self.le1.editingFinished.connect(self.update_data)
        self.le2.editingFinished.connect(self.update_data)
        self.le3.editingFinished.connect(self.update_data)
        self.le4.editingFinished.connect(self.update_data)
        self.le5.editingFinished.connect(self.update_data)
        self.le6.editingFinished.connect(self.update_data)
        self.le7.editingFinished.connect(self.update_data)
        self.le8.editingFinished.connect(self.update_data)
        self.le9.editingFinished.connect(self.update_data)
        self.le10.editingFinished.connect(self.update_data)
        self.le11.editingFinished.connect(self.update_data)
        self.le12.editingFinished.connect(self.update_data)
        self.len_gen.editingFinished.connect(self.update_data)
        self.lepop.editingFinished.connect(self.update_data)
        self.len_r.editingFinished.connect(self.update_data)
        self.len_e.editingFinished.connect(self.update_data)
        self.lec_f.editingFinished.connect(self.update_data)
        
        ##########################
        #TO DO - connects for combo boxes - combo_model and combo_algo (what signal to use?)
        ##########################
        self.combo_algo.currentIndexChanged.connect(self.update_algo)
        self.combo_model.currentIndexChanged.connect(self.update_model)
        
        self.statusBar().showMessage('Ready')
コード例 #6
0
"""Пример расположения с помощью сетки"""

import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget  #представляет из себя одно окно
from PyQt5.QtWidgets import QLineEdit  #кнопочки, на которые можно нажимать
from PyQt5.QtWidgets import QPushButton  #кнопочки, на которые можно нажимать
from PyQt5.QtWidgets import QLabel  #кнопочки, на которые можно нажимать
from PyQt5.QtWidgets import QFormLayout  #кнопочки, на которые можно нажимать

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle("Первая программа на PyQt5")
window.setGeometry(400, 400, 600, 600)

layout = QFormLayout()  #Создаем объект верстки
"""первый аргумент строка, второй - позиция в ней"""
layout.addRow(QLabel("Enter you IDs"))
layout.addRow("Name", QLineEdit())
layout.addRow("Surname", QLineEdit())
layout.addRow("Card Number", QLineEdit())
layout.addRow(QPushButton("Send data"))

window.setLayout(layout)
window.show()
sys.exit(app.exec())
コード例 #7
0
ファイル: qt.py プロジェクト: justanwar/electrum-xzc
    def request_safe_t_init_settings(self, wizard, method, device):
        vbox = QVBoxLayout()
        next_enabled = True
        label = QLabel(_("Enter a label to name your device:"))
        name = QLineEdit()
        hl = QHBoxLayout()
        hl.addWidget(label)
        hl.addWidget(name)
        hl.addStretch(1)
        vbox.addLayout(hl)

        def clean_text(widget):
            text = widget.toPlainText().strip()
            return ' '.join(text.split())

        if method in [TIM_NEW, TIM_RECOVER]:
            gb = QGroupBox()
            hbox1 = QHBoxLayout()
            gb.setLayout(hbox1)
            vbox.addWidget(gb)
            gb.setTitle(_("Select your seed length:"))
            bg = QButtonGroup()
            for i, count in enumerate([12, 18, 24]):
                rb = QRadioButton(gb)
                rb.setText(_("{:d} words").format(count))
                bg.addButton(rb)
                bg.setId(rb, i)
                hbox1.addWidget(rb)
                rb.setChecked(True)
            cb_pin = QCheckBox(_('Enable PIN protection'))
            cb_pin.setChecked(True)
        else:
            text = QTextEdit()
            text.setMaximumHeight(60)
            if method == TIM_MNEMONIC:
                msg = _("Enter your BIP39 mnemonic:")
            else:
                msg = _("Enter the master private key beginning with xprv:")

                def set_enabled():
                    from electrum_xzc.bip32 import is_xprv
                    wizard.next_button.setEnabled(is_xprv(clean_text(text)))

                text.textChanged.connect(set_enabled)
                next_enabled = False

            vbox.addWidget(QLabel(msg))
            vbox.addWidget(text)
            pin = QLineEdit()
            pin.setValidator(QRegExpValidator(QRegExp('[1-9]{0,9}')))
            pin.setMaximumWidth(100)
            hbox_pin = QHBoxLayout()
            hbox_pin.addWidget(QLabel(_("Enter your PIN (digits 1-9):")))
            hbox_pin.addWidget(pin)
            hbox_pin.addStretch(1)

        if method in [TIM_NEW, TIM_RECOVER]:
            vbox.addWidget(WWLabel(RECOMMEND_PIN))
            vbox.addWidget(cb_pin)
        else:
            vbox.addLayout(hbox_pin)

        passphrase_msg = WWLabel(PASSPHRASE_HELP_SHORT)
        passphrase_warning = WWLabel(PASSPHRASE_NOT_PIN)
        passphrase_warning.setStyleSheet("color: red")
        cb_phrase = QCheckBox(_('Enable passphrases'))
        cb_phrase.setChecked(False)
        vbox.addWidget(passphrase_msg)
        vbox.addWidget(passphrase_warning)
        vbox.addWidget(cb_phrase)

        wizard.exec_layout(vbox, next_enabled=next_enabled)

        if method in [TIM_NEW, TIM_RECOVER]:
            item = bg.checkedId()
            pin = cb_pin.isChecked()
        else:
            item = ' '.join(str(clean_text(text)).split())
            pin = str(pin.text())

        return (item, name.text(), pin, cb_phrase.isChecked())
コード例 #8
0
ファイル: qt.py プロジェクト: justanwar/electrum-xzc
    def __init__(self, window, plugin, keystore, device_id):
        title = _("{} Settings").format(plugin.device)
        super(SettingsDialog, self).__init__(window, title)
        self.setMaximumWidth(540)

        devmgr = plugin.device_manager()
        config = devmgr.config
        handler = keystore.handler
        thread = keystore.thread
        hs_cols, hs_rows = (128, 64)

        def invoke_client(method, *args, **kw_args):
            unpair_after = kw_args.pop('unpair_after', False)

            def task():
                client = devmgr.client_by_id(device_id)
                if not client:
                    raise RuntimeError("Device not connected")
                if method:
                    getattr(client, method)(*args, **kw_args)
                if unpair_after:
                    devmgr.unpair_id(device_id)
                return client.features

            thread.add(task, on_success=update)

        def update(features):
            self.features = features
            set_label_enabled()
            if features.bootloader_hash:
                bl_hash = bh2u(features.bootloader_hash)
                bl_hash = "\n".join([bl_hash[:32], bl_hash[32:]])
            else:
                bl_hash = "N/A"
            noyes = [_("No"), _("Yes")]
            endis = [_("Enable Passphrases"), _("Disable Passphrases")]
            disen = [_("Disabled"), _("Enabled")]
            setchange = [_("Set a PIN"), _("Change PIN")]

            version = "%d.%d.%d" % (features.major_version,
                                    features.minor_version,
                                    features.patch_version)

            device_label.setText(features.label)
            pin_set_label.setText(noyes[features.pin_protection])
            passphrases_label.setText(disen[features.passphrase_protection])
            bl_hash_label.setText(bl_hash)
            label_edit.setText(features.label)
            device_id_label.setText(features.device_id)
            initialized_label.setText(noyes[features.initialized])
            version_label.setText(version)
            clear_pin_button.setVisible(features.pin_protection)
            clear_pin_warning.setVisible(features.pin_protection)
            pin_button.setText(setchange[features.pin_protection])
            pin_msg.setVisible(not features.pin_protection)
            passphrase_button.setText(endis[features.passphrase_protection])
            language_label.setText(features.language)

        def set_label_enabled():
            label_apply.setEnabled(label_edit.text() != self.features.label)

        def rename():
            invoke_client('change_label', label_edit.text())

        def toggle_passphrase():
            title = _("Confirm Toggle Passphrase Protection")
            currently_enabled = self.features.passphrase_protection
            if currently_enabled:
                msg = _("After disabling passphrases, you can only pair this "
                        "Electrum wallet if it had an empty passphrase.  "
                        "If its passphrase was not empty, you will need to "
                        "create a new wallet with the install wizard.  You "
                        "can use this wallet again at any time by re-enabling "
                        "passphrases and entering its passphrase.")
            else:
                msg = _("Your current Electrum wallet can only be used with "
                        "an empty passphrase.  You must create a separate "
                        "wallet with the install wizard for other passphrases "
                        "as each one generates a new set of addresses.")
            msg += "\n\n" + _("Are you sure you want to proceed?")
            if not self.question(msg, title=title):
                return
            invoke_client('toggle_passphrase', unpair_after=currently_enabled)

        def change_homescreen():
            dialog = QFileDialog(self, _("Choose Homescreen"))
            filename, __ = dialog.getOpenFileName()
            if not filename:
                return  # user cancelled

            if filename.endswith('.toif'):
                img = open(filename, 'rb').read()
                if img[:8] != b'TOIf\x90\x00\x90\x00':
                    handler.show_error(
                        'File is not a TOIF file with size of 144x144')
                    return
            else:
                from PIL import Image  # FIXME
                im = Image.open(filename)
                if im.size != (128, 64):
                    handler.show_error('Image must be 128 x 64 pixels')
                    return
                im = im.convert('1')
                pix = im.load()
                img = bytearray(1024)
                for j in range(64):
                    for i in range(128):
                        if pix[i, j]:
                            o = (i + j * 128)
                            img[o // 8] |= (1 << (7 - o % 8))
                img = bytes(img)
            invoke_client('change_homescreen', img)

        def clear_homescreen():
            invoke_client('change_homescreen', b'\x00')

        def set_pin():
            invoke_client('set_pin', remove=False)

        def clear_pin():
            invoke_client('set_pin', remove=True)

        def wipe_device():
            wallet = window.wallet
            if wallet and sum(wallet.get_balance()):
                title = _("Confirm Device Wipe")
                msg = _("Are you SURE you want to wipe the device?\n"
                        "Your wallet still has bitcoins in it!")
                if not self.question(
                        msg, title=title, icon=QMessageBox.Critical):
                    return
            invoke_client('wipe_device', unpair_after=True)

        def slider_moved():
            mins = timeout_slider.sliderPosition()
            timeout_minutes.setText(_("{:2d} minutes").format(mins))

        def slider_released():
            config.set_session_timeout(timeout_slider.sliderPosition() * 60)

        # Information tab
        info_tab = QWidget()
        info_layout = QVBoxLayout(info_tab)
        info_glayout = QGridLayout()
        info_glayout.setColumnStretch(2, 1)
        device_label = QLabel()
        pin_set_label = QLabel()
        passphrases_label = QLabel()
        version_label = QLabel()
        device_id_label = QLabel()
        bl_hash_label = QLabel()
        bl_hash_label.setWordWrap(True)
        language_label = QLabel()
        initialized_label = QLabel()
        rows = [
            (_("Device Label"), device_label),
            (_("PIN set"), pin_set_label),
            (_("Passphrases"), passphrases_label),
            (_("Firmware Version"), version_label),
            (_("Device ID"), device_id_label),
            (_("Bootloader Hash"), bl_hash_label),
            (_("Language"), language_label),
            (_("Initialized"), initialized_label),
        ]
        for row_num, (label, widget) in enumerate(rows):
            info_glayout.addWidget(QLabel(label), row_num, 0)
            info_glayout.addWidget(widget, row_num, 1)
        info_layout.addLayout(info_glayout)

        # Settings tab
        settings_tab = QWidget()
        settings_layout = QVBoxLayout(settings_tab)
        settings_glayout = QGridLayout()

        # Settings tab - Label
        label_msg = QLabel(
            _("Name this {}.  If you have multiple devices "
              "their labels help distinguish them.").format(plugin.device))
        label_msg.setWordWrap(True)
        label_label = QLabel(_("Device Label"))
        label_edit = QLineEdit()
        label_edit.setMinimumWidth(150)
        label_edit.setMaxLength(plugin.MAX_LABEL_LEN)
        label_apply = QPushButton(_("Apply"))
        label_apply.clicked.connect(rename)
        label_edit.textChanged.connect(set_label_enabled)
        settings_glayout.addWidget(label_label, 0, 0)
        settings_glayout.addWidget(label_edit, 0, 1, 1, 2)
        settings_glayout.addWidget(label_apply, 0, 3)
        settings_glayout.addWidget(label_msg, 1, 1, 1, -1)

        # Settings tab - PIN
        pin_label = QLabel(_("PIN Protection"))
        pin_button = QPushButton()
        pin_button.clicked.connect(set_pin)
        settings_glayout.addWidget(pin_label, 2, 0)
        settings_glayout.addWidget(pin_button, 2, 1)
        pin_msg = QLabel(
            _("PIN protection is strongly recommended.  "
              "A PIN is your only protection against someone "
              "stealing your bitcoins if they obtain physical "
              "access to your {}.").format(plugin.device))
        pin_msg.setWordWrap(True)
        pin_msg.setStyleSheet("color: red")
        settings_glayout.addWidget(pin_msg, 3, 1, 1, -1)

        # Settings tab - Homescreen
        homescreen_label = QLabel(_("Homescreen"))
        homescreen_change_button = QPushButton(_("Change..."))
        homescreen_clear_button = QPushButton(_("Reset"))
        homescreen_change_button.clicked.connect(change_homescreen)
        try:
            import PIL
        except ImportError:
            homescreen_change_button.setDisabled(True)
            homescreen_change_button.setToolTip(
                _("Required package 'PIL' is not available - Please install it."
                  ))
        homescreen_clear_button.clicked.connect(clear_homescreen)
        homescreen_msg = QLabel(
            _("You can set the homescreen on your "
              "device to personalize it.  You must "
              "choose a {} x {} monochrome black and "
              "white image.").format(hs_cols, hs_rows))
        homescreen_msg.setWordWrap(True)
        settings_glayout.addWidget(homescreen_label, 4, 0)
        settings_glayout.addWidget(homescreen_change_button, 4, 1)
        settings_glayout.addWidget(homescreen_clear_button, 4, 2)
        settings_glayout.addWidget(homescreen_msg, 5, 1, 1, -1)

        # Settings tab - Session Timeout
        timeout_label = QLabel(_("Session Timeout"))
        timeout_minutes = QLabel()
        timeout_slider = QSlider(Qt.Horizontal)
        timeout_slider.setRange(1, 60)
        timeout_slider.setSingleStep(1)
        timeout_slider.setTickInterval(5)
        timeout_slider.setTickPosition(QSlider.TicksBelow)
        timeout_slider.setTracking(True)
        timeout_msg = QLabel(
            _("Clear the session after the specified period "
              "of inactivity.  Once a session has timed out, "
              "your PIN and passphrase (if enabled) must be "
              "re-entered to use the device."))
        timeout_msg.setWordWrap(True)
        timeout_slider.setSliderPosition(config.get_session_timeout() // 60)
        slider_moved()
        timeout_slider.valueChanged.connect(slider_moved)
        timeout_slider.sliderReleased.connect(slider_released)
        settings_glayout.addWidget(timeout_label, 6, 0)
        settings_glayout.addWidget(timeout_slider, 6, 1, 1, 3)
        settings_glayout.addWidget(timeout_minutes, 6, 4)
        settings_glayout.addWidget(timeout_msg, 7, 1, 1, -1)
        settings_layout.addLayout(settings_glayout)
        settings_layout.addStretch(1)

        # Advanced tab
        advanced_tab = QWidget()
        advanced_layout = QVBoxLayout(advanced_tab)
        advanced_glayout = QGridLayout()

        # Advanced tab - clear PIN
        clear_pin_button = QPushButton(_("Disable PIN"))
        clear_pin_button.clicked.connect(clear_pin)
        clear_pin_warning = QLabel(
            _("If you disable your PIN, anyone with physical access to your "
              "{} device can spend your bitcoins.").format(plugin.device))
        clear_pin_warning.setWordWrap(True)
        clear_pin_warning.setStyleSheet("color: red")
        advanced_glayout.addWidget(clear_pin_button, 0, 2)
        advanced_glayout.addWidget(clear_pin_warning, 1, 0, 1, 5)

        # Advanced tab - toggle passphrase protection
        passphrase_button = QPushButton()
        passphrase_button.clicked.connect(toggle_passphrase)
        passphrase_msg = WWLabel(PASSPHRASE_HELP)
        passphrase_warning = WWLabel(PASSPHRASE_NOT_PIN)
        passphrase_warning.setStyleSheet("color: red")
        advanced_glayout.addWidget(passphrase_button, 3, 2)
        advanced_glayout.addWidget(passphrase_msg, 4, 0, 1, 5)
        advanced_glayout.addWidget(passphrase_warning, 5, 0, 1, 5)

        # Advanced tab - wipe device
        wipe_device_button = QPushButton(_("Wipe Device"))
        wipe_device_button.clicked.connect(wipe_device)
        wipe_device_msg = QLabel(
            _("Wipe the device, removing all data from it.  The firmware "
              "is left unchanged."))
        wipe_device_msg.setWordWrap(True)
        wipe_device_warning = QLabel(
            _("Only wipe a device if you have the recovery seed written down "
              "and the device wallet(s) are empty, otherwise the bitcoins "
              "will be lost forever."))
        wipe_device_warning.setWordWrap(True)
        wipe_device_warning.setStyleSheet("color: red")
        advanced_glayout.addWidget(wipe_device_button, 6, 2)
        advanced_glayout.addWidget(wipe_device_msg, 7, 0, 1, 5)
        advanced_glayout.addWidget(wipe_device_warning, 8, 0, 1, 5)
        advanced_layout.addLayout(advanced_glayout)
        advanced_layout.addStretch(1)

        tabs = QTabWidget(self)
        tabs.addTab(info_tab, _("Information"))
        tabs.addTab(settings_tab, _("Settings"))
        tabs.addTab(advanced_tab, _("Advanced"))
        dialog_vbox = QVBoxLayout(self)
        dialog_vbox.addWidget(tabs)
        dialog_vbox.addLayout(Buttons(CloseButton(self)))

        # Update information
        invoke_client(None)
コード例 #9
0
    def initUI(self):
        '''
        # 标签1
        lb1 = QLabel("源目录", self)
        #lb1.move(20,30)
        # 标签2
        lb2=QLabel("目标目录",self)
        #lb2.move(20, 70)
        # 输入框1
        self.ledit1 = QLineEdit(self)
        #self.ledit1.setGeometry(QtCore.QRect(110, 30, 200, 30))
        # 输入框2
        self.ledit2 = QLineEdit(self)
        #self.ledit2.setGeometry(QtCore.QRect(110, 70, 200, 30))
        # 按钮1
        btn_start=QPushButton('开始处理',self)
        #btn_start.move(20,120)
        btn_start.setToolTip('<b>开始合并CMO的版本</b>')
        btn_start.clicked.connect(self.process_dir)
        #按钮2
        btn_quit = QPushButton('退出', self)
        #btn_quit.move(220, 120)
        btn_quit.setToolTip('<b>退出程序</b>')
        btn_quit.clicked.connect(qApp.quit)
        '''

        srcdir = QLabel('源目录')
        destdir = QLabel('目标目录')

        self.srcdir_edit = QLineEdit()
        self.destdir_edit = QLineEdit()

        ok_button = QPushButton("开始处理")
        ok_button.setToolTip('<b>开始合并CMO的版本</b>')
        ok_button.clicked.connect(self.process_dir)
        quit_button = QPushButton("退出")
        quit_button.setToolTip('<b>退出程序</b>')
        quit_button.clicked.connect(qApp.quit)

        log_lab = QLabel('日志信息')
        self.log_edit = QTextEdit()

        grid = QGridLayout()
        grid.setSpacing(10)

        grid.addWidget(srcdir, 1, 0)
        grid.addWidget(self.srcdir_edit, 1, 1, 2, 1)

        grid.addWidget(destdir, 3, 0)
        grid.addWidget(self.destdir_edit, 3, 1, 2, 1)

        grid.addWidget(quit_button, 5, 0, 1, 1)
        grid.addWidget(ok_button, 5, 1, 1, 1)

        grid.addWidget(log_lab, 7, 0, 1, 1)
        grid.addWidget(self.log_edit, 7, 1, 1, 1)
        self.setLayout(grid)

        self.setGeometry(300, 300, 550, 450)
        self.setWindowTitle("版本预处理")
        self.setWindowIcon(QtGui.QIcon('./download.png'))
        self.show()
コード例 #10
0
    def __init__(self,
                 msg,
                 kind,
                 OK_button,
                 wallet=None,
                 force_disable_encrypt_cb=False):
        self.wallet = wallet

        self.pw = QLineEdit()
        self.pw.setEchoMode(2)
        self.new_pw = QLineEdit()
        self.new_pw.setEchoMode(2)
        self.conf_pw = QLineEdit()
        self.conf_pw.setEchoMode(2)
        self.kind = kind
        self.OK_button = OK_button

        vbox = QVBoxLayout()
        label = QLabel(msg + "\n")
        label.setWordWrap(True)

        grid = QGridLayout()
        grid.setSpacing(8)
        grid.setColumnMinimumWidth(0, 150)
        grid.setColumnMinimumWidth(1, 100)
        grid.setColumnStretch(1, 1)

        if kind == PW_PASSPHRASE:
            vbox.addWidget(label)
            msgs = [_('Passphrase:'), _('Confirm Passphrase:')]
        else:
            logo_grid = QGridLayout()
            logo_grid.setSpacing(8)
            logo_grid.setColumnMinimumWidth(0, 70)
            logo_grid.setColumnStretch(1, 1)

            logo = QLabel()
            logo.setAlignment(Qt.AlignCenter)

            logo_grid.addWidget(logo, 0, 0)
            logo_grid.addWidget(label, 0, 1, 1, 2)
            vbox.addLayout(logo_grid)

            m1 = _('New Password:'******'Password:'******'Confirm Password:'******'Current Password:'******'Encrypt wallet file'))
        self.encrypt_cb.setEnabled(False)
        grid.addWidget(self.encrypt_cb, 4, 0, 1, 2)
        self.encrypt_cb.setVisible(kind != PW_PASSPHRASE)

        def enable_OK():
            ok = self.new_pw.text() == self.conf_pw.text()
            OK_button.setEnabled(ok)
            self.encrypt_cb.setEnabled(ok and bool(self.new_pw.text())
                                       and not force_disable_encrypt_cb)

        self.new_pw.textChanged.connect(enable_OK)
        self.conf_pw.textChanged.connect(enable_OK)

        self.vbox = vbox