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)
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()
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('Время'))
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()
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')
"""Пример расположения с помощью сетки""" 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())
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())
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)
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()
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