def __init__(self, arguments_definition, values=None): QWidget.__init__(self) panel = QVBoxLayout() panel.setAlignment(Qt.AlignTop) self.setLayout(panel) self.map = {} added = 0 row = None args = arguments_definition['arguments'] for arg in args: if added % items_per_row == 0: row = QHBoxLayout() row.setAlignment(Qt.AlignLeft) panel.addLayout(row) else: row.addSpacerItem(QSpacerItem(gap_width, 1, QSizePolicy.Fixed)) entry = Entry(arg) self.map[entry.name] = entry lb_name = QLabel( f"{entry.name}{' *' if entry.is_mandatory else ''}:") lb_name.setFixedWidth(name_width) lb_name.setToolTip(entry.tooltip) row.addWidget(lb_name) entry.textbox.setFixedWidth(value_width) row.addWidget(entry.textbox) if values != None: entry.textbox.setText(values[entry.name]) added = added + 1
def __init__(self, controller, callback): super(VistaInserisciDipendente, self).__init__() self.controller = controller self.callback = callback self.v_layout = QVBoxLayout() self.qlines = {} self.add_info_text("nome", "Nome") self.add_info_text("cognome", "Cognome") self.add_info_text("cf", "Codice Fiscale") self.add_info_text("data_n", "Data di nascita (dd/MM/yyyy)") self.add_info_text("luogo_n", "Luogo di nascita") self.add_info_text("telefono", "Telefono") self.add_info_text("ruolo", "Ruolo") self.v_layout.addItem( QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)) btn_ok = QPushButton("OK") btn_ok.clicked.connect(self.add_dipendente) self.v_layout.addWidget(btn_ok) self.setLayout(self.v_layout) self.setWindowTitle("Nuovo Dipendente")
def __init__(self, parent=None): super(MigrationWidget, self).__init__(parent, Qt.WindowStaysOnTopHint) self._migration, vbox, hbox = {}, QVBoxLayout(self), QHBoxLayout() lbl_title = QLabel(translations.TR_CURRENT_CODE) lbl_suggestion = QLabel(translations.TR_SUGGESTED_CHANGES) self.current_list, self.suggestion = QListWidget(), QPlainTextEdit() self.suggestion.setReadOnly(True) self.btn_apply = QPushButton(translations.TR_APPLY_CHANGES + " !") self.suggestion.setToolTip(translations.TR_SAVE_BEFORE_APPLY + " !") self.btn_apply.setToolTip(translations.TR_SAVE_BEFORE_APPLY + " !") # pack up all widgets hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding)) hbox.addWidget(self.btn_apply) vbox.addWidget(lbl_title) vbox.addWidget(self.current_list) vbox.addWidget(lbl_suggestion) vbox.addWidget(self.suggestion) vbox.addLayout(hbox) # connections self.current_list.itemClicked['QListWidgetItem*'].connect(self.load_suggestion) self.btn_apply.clicked['bool'].connect(self.apply_changes) # registers IDE.register_service('tab_migration', self) ExplorerContainer.register_tab(translations.TR_TAB_MIGRATION, self)
def construct_innerframe(self, spacing: int) -> QFrame: parent_toolbar = tabtoolbar.find_tabtoolbar(self) if not parent_toolbar: raise Exception("Could not find Parent Tabtoolbar") group_maxheight = parent_toolbar.group_maxheight rowcount = parent_toolbar.rowcount() frame = QFrame(self) frame.setFrameShape(QFrame.NoFrame) frame.setLineWidth(0) frame.setContentsMargins(0, 0, 0, 0) policy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) policy.setHorizontalStretch(0) policy.setVerticalStretch(1) frame.setSizePolicy(policy) frame.setMaximumHeight(group_maxheight / rowcount) llayout = QHBoxLayout(frame) # layout.setMargin(0) llayout.setContentsMargins(0, 0, 0, 0) llayout.setSpacing(spacing) llayout.setDirection(QBoxLayout.LeftToRight) frame.setLayout(llayout) spacer = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) llayout.addItem(spacer) return frame
def __init__(self, manager, parent): super(QToolWindowSingleTabAreaFrame, self).__init__(parent) self.area = None self.reference = None self.index = 0 self.contents = None self.geometry = QRect() self.layout = QGridLayout(self) self.manager = manager self.closeButton = None self.caption = QLabel(self) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) self.caption.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents) self.caption.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.layout.addWidget(self.caption, 0, 0) if self.manager.config.setdefault(QTWM_AREA_TABS_CLOSABLE, False): self.closeButton = QPushButton(self) self.closeButton.setObjectName("closeButton") self.closeButton.setFocusPolicy(QtCore.Qt.NoFocus) self.closeButton.setIcon(self.getCloseButtonIcon()) self.closeButton.clicked.connect(self.closeWidget) self.layout.addWidget(self.closeButton, 0, 2) else: self.layout.addItem( QSpacerItem(0, 23, QSizePolicy.Minimum, QSizePolicy.Expanding), 0, 1) self.windowTitleChanged.connect(self.caption.setText) self.layout.setColumnMinimumWidth(0, 1) self.layout.setRowStretch(1, 1)
def __init__(self, winParent, pose3d): super(porcentajeWidget, self).__init__() self.winParent = winParent self.map = cv2.imread("resources/images/mapgrannyannie.png", cv2.IMREAD_GRAYSCALE) self.map = cv2.resize(self.map, (500, 500)) image = QtGui.QImage(self.map.data, self.map.shape[1], self.map.shape[0], self.map.shape[1], QtGui.QImage.Format_Indexed8) self.pixmap = QtGui.QPixmap.fromImage(image) self.pose3d = pose3d self.porcentajeCasa = 0 self.numPixels = self.calculatePixelsWhite() self.numPixelsRecorridos = 0 vLayout = QVBoxLayout() self.porcentajeRecorrido() self.Porcentaje = QLabel("Porcentaje: " + str(round(self.porcentajeCasa, 3)) + ' %') vLayout.addWidget(self.Porcentaje, 0) self.bar = QProgressBar() self.bar.setValue(self.porcentajeCasa) st = "QProgressBar::chunk {background-color: #ff0000;}\n QProgressBar {border: 1px solid grey;border-radius: 2px;text-align: center;background: #eeeeee;}" self.bar.setStyleSheet(st) self.bar.setTextVisible(False) vLayout.addWidget(self.Porcentaje, 0) vLayout.addWidget(self.bar, 0) vSpacer = QSpacerItem(30, 80, QSizePolicy.Ignored, QSizePolicy.Ignored) vLayout.addItem(vSpacer) self.setLayout(vLayout)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # ---- UI ---- self.setWindowTitle(self.tr("Preferences")) # ---- Content ---- self.layout = QVBoxLayout() self.layout.setSpacing(120) # Language self.language_select = LanguageSelect() self.layout.addWidget(self.language_select) # Currency self.currency_select = CurrencySelect() self.layout.addWidget(self.currency_select) # Spacer self.layout.addSpacerItem( QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding)) # Save Button self.save = SaveButton() self.layout.addLayout(self.save) self.setLayout(self.layout) # ---- Functionality ---- self.save.bttn.clicked.connect(self.handleSave)
def show_pulsantiera(self): # Configurazioni iniziali font = QFont('Times New Roman', 20, 100, True) style = 'QPushButton {background-color: orange; color: black;}' layout_pulsanti = QVBoxLayout() # Pulsante Aggiungi dipendente pulsante_aggiungi = QPushButton("Aggiungi") pulsante_aggiungi.setFont(font) pulsante_aggiungi.setStyleSheet(style) pulsante_aggiungi.setFixedSize(200, 50) pulsante_aggiungi.clicked.connect(self.call_seleziona_dipendente) pulsante_esci = QPushButton("Esci") pulsante_esci.setFont(font) pulsante_esci.setStyleSheet(style) pulsante_esci.setFixedSize(200, 50) pulsante_esci.clicked.connect(self.esci) # Settaggio e allineamento pulsanti layout_pulsanti.addWidget(pulsante_aggiungi) layout_pulsanti.addSpacerItem(QSpacerItem(0, 50)) layout_pulsanti.addWidget(pulsante_esci) self.layout_orizzontale.addLayout(layout_pulsanti)
def ff3_qw_info(): fu3_lo = QGridLayout() for bu4_row, bu4_str in enumerate([ 'Application name', 'Application version', 'Application author' ]): fu3_lo.addWidget(QLabel(bu4_str), bu4_row, 0, Qt.AlignRight | Qt.AlignCenter) def ff4_qw_le(x4_str): fu4_le = QLineEdit() fu4_le.setText(x4_str) fu4_le.setReadOnly(True) return fu4_le for bu4_row, bu4_str in enumerate( [self.wu_app_nm, self.wu_app_vr, self.wu_app_au]): fu3_lo.addWidget(ff4_qw_le(bu4_str), bu4_row, 1, Qt.AlignLeft | Qt.AlignCenter) for bu4_row in range(3): fu3_lo.addItem( QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Minimum), bu4_row, 2) return fu3_lo
def initUI(self): self.setWindowTitle("Input") top_layout = QHBoxLayout() label = QLabel("Please input class name: ", self) self.input = QLineEdit() top_layout.addWidget(label) top_layout.addWidget(self.input) cancel_btn = QPushButton("Cancel", self) ok_btn = QPushButton("Ok", self) spacer = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Maximum) bottom_layout = QHBoxLayout() bottom_layout.addSpacerItem(spacer) bottom_layout.addWidget(cancel_btn) bottom_layout.addWidget(ok_btn) ok_btn.clicked.connect(self.getClassName) cancel_btn.clicked.connect(self.onClickCancel) window_layout = QVBoxLayout() window_layout.addLayout(top_layout) window_layout.addLayout(bottom_layout) self.setLayout(window_layout)
def _init_ui(self): self.select_button = QPushButton(f"Select {self._role_name} Files...") self.clear_button = QPushButton(f"Clear {self._role_name} Files") button_layout = QHBoxLayout() button_layout.addWidget(self.select_button) button_layout.addSpacerItem( QSpacerItem(0, 0, hPolicy=QSizePolicy.Expanding)) button_layout.addWidget(self.clear_button) button_layout.setContentsMargins(0, 0, 0, 0) self.list_widget = FileListWidget(parent=self) self.list_widget.setSizePolicy( QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) self.list_widget.setAcceptDrops(True) main_layout = QVBoxLayout() main_layout.setContentsMargins(0, 0, 0, 0) main_layout.addLayout(button_layout) main_layout.addWidget(self.list_widget) self.clear_button.clicked.connect(self.clear) self.select_button.clicked.connect(self.select_files) self.setLayout(main_layout)
def ff3_add_qw_config (x3_row) : fv3_row = x3_row self.wu_qw_c_lo = QHBoxLayout () self.wu_qw_c_lo .setContentsMargins ( 0, 0, 0, 0 ) self.wu_qw_c_lo .setSpacing (1) def ff4_qw_sb () : fu4_sb = QSpinBox () fu4_sb .setMinimum (2) fu4_sb .setMaximum (100_000) fu4_sb .setValue ( fu4_sb .minimum () ) fu4_sb .setPrefix ( 'repeat each page ' ) fu4_sb .setSuffix (' times') fu4_sb .setSingleStep (1) fu4_sb .setAlignment (Qt.AlignRight) return fu4_sb self.wu_qw_c_repeat_sb = ff4_qw_sb () self.wu_qw_c_lo .addWidget (self.wu_qw_c_repeat_sb) self.wu_qw_c_lo .addItem ( QSpacerItem ( 1, 1, QSizePolicy.Expanding, QSizePolicy.Minimum ) ) self.wu_qw_c = QWidget () self.wu_qw_c .setLayout (self.wu_qw_c_lo) self.wu_qw_c .setEnabled (False) fu2_lo .addWidget ( QLabel ('Config'), fv3_row, 0, 1, 1, Qt.AlignRight ) fu2_lo .addWidget ( self.wu_qw_c, fv3_row, 1, 1, -1 ) return fv3_row
def changeTileWidth(): """Change tile width (tile block size) and reset image-scene""" dlg = QDialog(self) dlg.setWindowTitle("Viewer Tile Width") dlg.setModal(True) spinBox = QSpinBox(parent=dlg) spinBox.setRange(128, 10 * 1024) spinBox.setValue(self.editor.imageScenes[0].tileWidth()) ctrl_layout = QHBoxLayout() ctrl_layout.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding)) ctrl_layout.addWidget(QLabel("Tile Width:")) ctrl_layout.addWidget(spinBox) button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, parent=dlg) button_box.accepted.connect(dlg.accept) button_box.rejected.connect(dlg.reject) dlg_layout = QVBoxLayout() dlg_layout.addLayout(ctrl_layout) dlg_layout.addWidget( QLabel("Setting will apply current view immediately,\n" "and all other views upon restart.")) dlg_layout.addWidget(button_box) dlg.setLayout(dlg_layout) if dlg.exec_() == QDialog.Accepted: for s in self.editor.imageScenes: if s.tileWidth != spinBox.value(): s.setTileWidth(spinBox.value()) s.reset()
def __init__(self, callback): super(VistaListaAttrezzaturaProprietario, self).__init__() # Attributi self.controller_lista_attrezzatura = ControllerListaAttrezzatura() self.callback = callback self.layout_verticale1 = QVBoxLayout() self.layout_orizzontale = QHBoxLayout() self.layout_verticale2 = QVBoxLayout() # Sfondo self.show_background("LISTA ATTREZZATURA") self.layout_verticale1.addSpacerItem(QSpacerItem(0, 200)) self.layout_orizzontale.addSpacerItem(QSpacerItem(100, 0)) # Lista self.vista_lista = QListView() label = self.aggiorna() self.layout_orizzontale.addWidget(label) self.layout_orizzontale.addSpacerItem(QSpacerItem(1000, 0)) # Pulsanti Apri e Indietro allineati self.show_pulsantiera() # Spaziatura self.layout_orizzontale.addSpacerItem(QSpacerItem(150, 0)) self.layout_verticale1.addLayout(self.layout_orizzontale) if self.controller_lista_attrezzatura.get_lista_filtrata() == []: self.layout_verticale1.addSpacerItem(QSpacerItem(0, 350)) else: self.layout_verticale1.addSpacerItem(QSpacerItem(0, 150)) # Impostazione layout totale self.setLayout(self.layout_verticale1) self.setWindowTitle('Lista Attrezzatura')
def _setLayout(self): mainLayout = QVBoxLayout() mainLayout.addItem(QSpacerItem(10, 10)) mainLayout.setSpacing(15) mainLayout.addLayout(self.input_layout) mainLayout.addItem(QSpacerItem(10, 20)) hlayout = QHBoxLayout() hlayout.addItem(QSpacerItem(30, 1)) hlayout.addWidget(self.btnOpenPolyline) hlayout.addWidget(self.polygonNameBox) mainLayout.addLayout(hlayout) mainLayout.addItem(QSpacerItem(10, 10)) mainLayout.addStretch() glayout = QGridLayout() glayout.addWidget(QLabel(' Select the flux to compute'), 1, 1) glayout.addWidget(self.fluxBox, 1, 2) hlayout = QHBoxLayout() hlayout.addWidget(QLabel('Time sampling frequency')) hlayout.addWidget(self.timeSampling) hlayout.setAlignment(self.timeSampling, Qt.AlignLeft) hlayout.addStretch() glayout.addLayout(hlayout, 2, 2) glayout.setAlignment(Qt.AlignLeft) glayout.setSpacing(10) mainLayout.addLayout(glayout) hlayout = QHBoxLayout() hlayout.addItem(QSpacerItem(30, 1)) hlayout.addWidget(self.btnSubmit) hlayout.addWidget(self.csvNameBox) mainLayout.addLayout(hlayout) mainLayout.addStretch() mainLayout.addItem(QSpacerItem(10, 15)) mainLayout.addWidget(QLabel(' Message logs')) mainLayout.addWidget(self.logTextBox.widget) self.setLayout(mainLayout)
def _setLayout(self): mainLayout = QVBoxLayout() mainLayout.addItem(QSpacerItem(50, 20)) mainLayout.addWidget(self.inputBox) mainLayout.addItem(QSpacerItem(50, 20)) hlayout = QHBoxLayout() hlayout.addWidget(QLabel('Output file type')) hlayout.addWidget(self.outTypeBox, Qt.AlignLeft) mainLayout.addLayout(hlayout) mainLayout.addItem(QSpacerItem(50, 10)) mainLayout.addLayout(self.stack) mainLayout.addItem(QSpacerItem(50, 10)) mainLayout.addLayout(self.stackbis) mainLayout.addItem(QSpacerItem(50, 10)) hlayout = QHBoxLayout() hlayout.addWidget(self.btnSubmit) hlayout.addWidget(self.outNameBox) mainLayout.addLayout(hlayout) mainLayout.addItem(QSpacerItem(30, 15)) mainLayout.addWidget(QLabel(' Message logs')) mainLayout.addWidget(self.logTextBox.widget) self.setLayout(mainLayout)
def _third_left(self, v4_wlayout, v5_wlayout): # 第三层布局 # 分量布局 v4_group_imf = QGridLayout() vbox1 = QGroupBox("分量值") self.radio_1 = QRadioButton("分量1") self.radio_2 = QRadioButton("分量2") self.radio_3 = QRadioButton("分量3") self.radio_4 = QRadioButton("分量4") self.radio_5 = QRadioButton("分量5") self.radio_6 = QRadioButton("分量6") self.radio_7 = QRadioButton("分量7") self.radio_8 = QRadioButton("分量8") self.radio_9 = QRadioButton("分量9") self.radio_1.setChecked(True) self.radio_val = self.radio_1.text() # 优先级布局 v4_group_prior = QGridLayout() vbox2 = QGroupBox("优先级") cb1 = QCheckBox("叶片1") cb2 = QCheckBox("叶片2") cb3 = QCheckBox("叶片3") self.v4_lineEdit = QLineEdit() # 时间布局 v4_group_time = QGridLayout() vbox3 = QGroupBox("时间选择") self.v4_combox1 = QComboBox(minimumWidth=100) self.v4_combox1.addItem("空") # 按键 v4_button = QPushButton("显示图形") # 写入网格格布局 v4_group_imf.addWidget(self.radio_1, 0, 0) v4_group_imf.addWidget(self.radio_2, 0, 1) v4_group_imf.addWidget(self.radio_3, 1, 0) v4_group_imf.addWidget(self.radio_4, 1, 1) v4_group_imf.addWidget(self.radio_5, 2, 0) v4_group_imf.addWidget(self.radio_6, 2, 1) v4_group_imf.addWidget(self.radio_7, 3, 0) v4_group_imf.addWidget(self.radio_8, 3, 1) v4_group_imf.addWidget(self.radio_9, 4, 0) v4_group_prior.addWidget(cb1, 1, 0) v4_group_prior.addWidget(cb2, 2, 0) v4_group_prior.addWidget(cb3, 3, 0) v4_group_prior.addWidget(QLabel("选择是:"), 4, 0) v4_group_prior.addWidget(self.v4_lineEdit, 5, 0) v4_group_time.addWidget(self.v4_combox1) # 写入左侧布局 vbox1.setLayout(v4_group_imf) vbox2.setLayout(v4_group_prior) vbox3.setLayout(v4_group_time) v4_wlayout.addItem(QSpacerItem(50, 20)) v4_wlayout.addWidget(vbox1) v4_wlayout.addItem(QSpacerItem(50, 20)) v4_wlayout.addWidget(vbox2) v4_wlayout.addItem(QSpacerItem(50, 20)) v4_wlayout.addWidget(vbox3) v4_wlayout.addItem(QSpacerItem(50, 20)) v4_wlayout.addWidget(v4_button) v4_wlayout.addItem(QSpacerItem(50, 20)) # 事件绑定 self.radio_1.toggled.connect(lambda: self._changestyle(self.radio_1)) self.radio_2.toggled.connect(lambda: self._changestyle(self.radio_2)) self.radio_3.toggled.connect(lambda: self._changestyle(self.radio_3)) self.radio_4.toggled.connect(lambda: self._changestyle(self.radio_4)) self.radio_5.toggled.connect(lambda: self._changestyle(self.radio_5)) self.radio_6.toggled.connect(lambda: self._changestyle(self.radio_6)) self.radio_7.toggled.connect(lambda: self._changestyle(self.radio_7)) self.radio_8.toggled.connect(lambda: self._changestyle(self.radio_8)) self.radio_9.toggled.connect(lambda: self._changestyle(self.radio_9)) cb1.stateChanged.connect(lambda: self._prior_func(cb1)) cb2.stateChanged.connect(lambda: self._prior_func(cb2)) cb3.stateChanged.connect(lambda: self._prior_func(cb3)) v4_button.clicked.connect(lambda: self._show_func(v5_wlayout))
def init(self, parent): self.m_mainLayout = QGridLayout() parent.setLayout(self.m_mainLayout) item = QSpacerItem(0, 0, QSizePolicy.Fixed, QSizePolicy.Expanding) self.m_mainLayout.addItem(item, 0, 0)
def __init__(self, parent=None): super().__init__(parent) self.setSubTitle(self.tr("<h2>Congratulations!</h2>")) self.homepage_url = "http://www.pisilinux.org" self.forum_url = "http://forum.pisilinux.org" self.wiki_url = "http://wiki.pisilinux.org" vlayout = QVBoxLayout(self) label = QLabel(self) label.setWordWrap(True) label.setText( self. tr("<p><strong>Your settings have been applied.</strong> Now you can start enjoying Pisi Linux \ or you can and support. Don't forget to <strong>join our community!<strong></p>" )) vlayout.addWidget(label) vlayout.addItem( QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred)) groupBox1 = QGroupBox() groupBox1.setTitle(self.tr("System Settings")) groupBox1.setMinimumHeight(150) groupHLayout1 = QHBoxLayout(groupBox1) groupLabelImage = QLabel() groupLabelImage.setPixmap( QPixmap(":/data/images/preferences-system.png")) groupLabelImage.setMaximumSize(64, 64) groupHLayout1.addWidget(groupLabelImage) groupLabel1 = QLabel() groupLabel1.setWordWrap(True) groupLabel1.setText( self. tr("<p>Configuration tools for Pisi Linux such as the display, firewall, keyboard, user manager...</p>" )) groupButton1 = QPushButton() groupButton1.setMaximumWidth(200) groupButton1.setText(self.tr("System Settings")) groupHLayout1.addWidget(groupLabel1) groupHLayout1.addItem( QSpacerItem(40, 20, QSizePolicy.Preferred, QSizePolicy.Preferred)) groupHLayout1.addWidget(groupButton1) vlayout.addWidget(groupBox1) vlayout.addItem( QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred)) groupBox2 = QGroupBox() groupBox2.setTitle(self.tr("Help and Support")) groupBox2.setMinimumHeight(150) groupHLayout2 = QHBoxLayout(groupBox2) groupLabelImage2 = QLabel() groupLabelImage2.setPixmap(QPixmap(":/data/images/system-help.png")) groupHLayout2.addWidget(groupLabelImage2) groupLabelImage2.setMaximumSize(64, 64) groupLabel2 = QLabel() groupLabel2.setWordWrap(True) groupLabel2.setText( self. tr("<p>Pisi Linux community, mailing lists, chat rooms, Wiki documents, help and support pages...</p>" )) groupButton2 = QPushButton() groupButton2.setMaximumWidth(200) groupButton2.setText(self.tr("Help and Support")) groupHLayout2.addWidget(groupLabel2) groupHLayout2.addItem( QSpacerItem(40, 20, QSizePolicy.Preferred, QSizePolicy.Preferred)) groupHLayout2.addWidget(groupButton2) vlayout.addWidget(groupBox2) vlayout.addItem( QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred)) groupButton2.clicked.connect(self.helpPagesOpen) groupButton1.clicked.connect(self.systemSettingsOpen)
def initUI(self): main_layout = QVBoxLayout(self) self.upd_layout = QVBoxLayout() self.update_label = QLabel() self.update_label.setAlignment(Qt.AlignCenter) self.upd_layout.addWidget(self.update_label) self.get_update_button = QPushButton() self.get_update_button.clicked.connect(self.get_update) self.upd_layout.addWidget(self.get_update_button) main_layout.addLayout(self.upd_layout) if not self.update: self.update_label.hide() self.get_update_button.hide() self.details_grid = QGridLayout() self.epub2_select = QRadioButton() self.epub2_select.setText('EPUB2') self.epubType = QButtonGroup() self.epubType.addButton(self.epub2_select) self.details_grid.addWidget(self.epub2_select, 0, 0, 1, 1) self.checkbox_get_updates = QCheckBox() self.details_grid.addWidget(self.checkbox_get_updates, 0, 1, 1, 1) self.epub3_select = QRadioButton() self.epub3_select.setText('EPUB3') self.epubType.addButton(self.epub3_select) self.details_grid.addWidget(self.epub3_select, 1, 0, 1, 1) main_layout.addLayout(self.details_grid) self.checkbox_get_updates.setChecked(self.prefs['check_for_updates']) if self.prefs['epub_version'] == '2.0': self.epub2_select.setChecked(True) elif self.prefs['epub_version'] == '3.0': self.epub3_select.setChecked(True) else: self.epub2_select.setChecked(True) self.groupBox = QGroupBox() self.groupBox.setTitle('') self.verticalLayout_2 = QVBoxLayout(self.groupBox) self.docx_grid = QGridLayout() self.docx_label = QLabel() self.docx_grid.addWidget(self.docx_label, 0, 0, 1, 1) self.docx_path = QLineEdit() self.docx_grid.addWidget(self.docx_path, 1, 0, 1, 1) self.choose_docx_button = QPushButton() self.choose_docx_button.setText('...') self.docx_grid.addWidget(self.choose_docx_button, 1, 1, 1, 1) self.verticalLayout_2.addLayout(self.docx_grid) self.choose_docx_button.clicked.connect( lambda: self.fileChooser('docx', self.docx_path)) if len(self.prefs['lastDocxPath']): self.docx_path.setText(self.prefs['lastDocxPath']) self.docx_path.setEnabled(False) self.smap_grid = QGridLayout() self.checkbox_smap = QCheckBox(self.groupBox) self.smap_grid.addWidget(self.checkbox_smap, 0, 0, 1, 1) self.cust_smap_path = QLineEdit(self.groupBox) self.smap_grid.addWidget(self.cust_smap_path, 1, 0, 1, 1) self.choose_smap_button = QPushButton(self.groupBox) self.choose_smap_button.setText('...') self.smap_grid.addWidget(self.choose_smap_button, 1, 1, 1, 1) self.verticalLayout_2.addLayout(self.smap_grid) self.checkbox_smap.setChecked(self.prefs['useSmap']) self.checkbox_smap.stateChanged.connect(lambda: self.chkBoxActions( self.checkbox_smap, self.choose_smap_button)) self.choose_smap_button.clicked.connect( lambda: self.fileChooser('smap', self.cust_smap_path, self. checkbox_smap, self.choose_smap_button)) if len(self.prefs['useSmapPath']): self.cust_smap_path.setText(self.prefs['useSmapPath']) self.cust_smap_path.setEnabled(False) self.chkBoxActions(self.checkbox_smap, self.choose_smap_button) self.css_grid = QGridLayout() self.checkbox_css = QCheckBox(self.groupBox) self.css_grid.addWidget(self.checkbox_css, 0, 0, 1, 1) self.cust_css_path = QLineEdit(self.groupBox) self.css_grid.addWidget(self.cust_css_path, 1, 0, 1, 1) self.choose_css_button = QPushButton(self.groupBox) self.choose_css_button.setText('...') self.css_grid.addWidget(self.choose_css_button, 1, 1, 1, 1) self.verticalLayout_2.addLayout(self.css_grid) self.checkbox_css.setChecked(self.prefs['useCss']) self.checkbox_css.stateChanged.connect(lambda: self.chkBoxActions( self.checkbox_css, self.choose_css_button)) self.choose_css_button.clicked.connect( lambda: self.fileChooser('css', self.cust_css_path, self. checkbox_css, self.choose_css_button)) if len(self.prefs['useCssPath']): self.cust_css_path.setText(self.prefs['useCssPath']) self.cust_css_path.setEnabled(False) self.chkBoxActions(self.checkbox_css, self.choose_css_button) main_layout.addWidget(self.groupBox) self.checkbox_debug = QCheckBox() main_layout.addWidget(self.checkbox_debug) self.checkbox_debug.setChecked(self.prefs['debug']) spacerItem = QSpacerItem(20, 15, QSizePolicy.Minimum, QSizePolicy.Expanding) main_layout.addItem(spacerItem) button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) button_box.accepted.connect(self._ok_clicked) button_box.rejected.connect(self._cancel_clicked) main_layout.addWidget(button_box) self.retranslateUi(self) if self.prefs['qt_geometry'] is not None: self.restoreGeometry( binascii.a2b_base64(self.prefs['qt_geometry'].encode('ascii'))) self.show()
def __init__(self, parent=None): super().__init__() self.setStyleSheet("background-color: rgb(255, 255, 255);") # 定义网格布局 self.widgetDefenseGridLayout = QGridLayout(self) self.widgetDefenseGridLayout.setContentsMargins(15, 14, 15, 10) self.widgetDefenseGridLayout.setHorizontalSpacing(10) self.widgetDefenseGridLayout.setVerticalSpacing(0) self.widgetDefenseGridLayout.setObjectName("widgetDefenseGridLayout") # 添加一个Label显示处理前的图像 self.labelSourceImage = QClickLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.labelSourceImage.sizePolicy().hasHeightForWidth()) self.labelSourceImage.setSizePolicy(sizePolicy) self.labelSourceImage.setMinimumSize(QSize(200, 200)) self.labelSourceImage.setCursor(QCursor(Qt.PointingHandCursor)) self.labelSourceImage.clicked(self.__labelSourceImageClick) # 添加一个标签显示"视频源:" self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setSpacing(6) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.labelTitle1 = QLabel(self) self.labelTitle1.setMinimumSize(QSize(0, 30)) self.labelTitle1.setMaximumSize(QSize(16777215, 30)) self.labelTitle1.setStyleSheet("font: 75 13pt \'微软雅黑\';") self.labelTitle1.setObjectName("labelTitle1") self.labelTitle1.setText("视频源:") self.horizontalLayout_3.addWidget(self.labelTitle1) self.pushButton = QPushButton(self) self.pushButton.setEnabled(True) self.pushButton.setMinimumSize(QSize(80, 26)) self.pushButton.setMaximumSize(QSize(80, 16777215)) self.pushButton.setStyleSheet("QPushButton{background-color: rgb(222, 222, 222);border:1px solid rgb(191, 191, 191);}QPushButton:hover{background-color: rgba(200, 200, 200, 255);}QPushButton:pressed{background-color: rgb(222, 222, 222);}") self.pushButton.setObjectName("pushButton") self.pushButton.setCursor(QCursor(Qt.PointingHandCursor)) self.pushButton.setText("噪声攻击") self.pushButton.clicked.connect(self.__pushButtonClick) self.horizontalLayout_3.addWidget(self.pushButton) self.widgetDefenseGridLayout.addLayout(self.horizontalLayout_3, 2, 0, 1, 1) # 添加一个Label显示处理后的图像 self.labelHandleImage = QClickLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.labelHandleImage.sizePolicy().hasHeightForWidth()) self.labelHandleImage.setSizePolicy(sizePolicy) self.labelHandleImage.setMinimumSize(QSize(200, 200)) self.labelHandleImage.setCursor(QCursor(Qt.PointingHandCursor)) self.labelHandleImage.clicked(self.__labelSourceImageClick) self.widgetDefenseGridLayout.addWidget(self.labelHandleImage, 5, 1, 1, 1) # 添加一个标签显示"处理后:" self.widgetDefenseGridLayout.addWidget(self.labelSourceImage, 5, 0, 1, 1) self.labelTitle2 = QLabel(self) self.labelTitle2.setMaximumSize(QSize(16777215, 30)) self.labelTitle2.setStyleSheet("font: 75 13pt \'微软雅黑\';") self.labelTitle2.setObjectName("labelTitle2") self.widgetDefenseGridLayout.addWidget(self.labelTitle2, 2, 1, 1, 1) spacerItem2 = QSpacerItem(20, 15, QSizePolicy.Minimum, QSizePolicy.Fixed) self.widgetDefenseGridLayout.addItem(spacerItem2, 6, 0, 1, 2) self.labelTitle2.setText("算法处理:") # 添加调试窗口 self.textBrowserDebug = QTextBrowser(self) self.textBrowserDebug.setMinimumSize(QSize(420, 100)) self.textBrowserDebug.setMaximumSize(QSize(16777215, 120)) self.textBrowserDebug.setStyleSheet("QScrollBar:vertical{width:10px;background:rgb(230,235,230);}QScrollBar::handle:vertical{background:rgb(200,200,200);}QTextBrowser{padding: 5px; border:1px solid #e6e6e6;color: rgb(77, 77, 77);}") self.textBrowserDebug.setObjectName("textBrowserDebug") self.textBrowserDebug.setHtml("") self.widgetDefenseGridLayout.addWidget(self.textBrowserDebug, 7, 0, 1, 2) # 定义一个读取图像的线程 self.threadPlay = Thread(self) self.threadPlay.console.connect(self.console) self.threadPlay.setSourceImage.connect(self.setSourceImage) self.threadPlay.setHandleImage.connect(self.setHandleImage)
def _createView(self): layout = QVBoxLayout() self.le_league = MonitoredLineEdit() self.le_league.setText("League TBD") self.le_league.setAlignment(Qt.AlignCenter) self.le_league.setPlaceholderText("League TBD") self.le_league.textModified.connect(self.league_changed) policy = QSizePolicy() policy.setHorizontalStretch(3) policy.setHorizontalPolicy(QSizePolicy.Expanding) policy.setVerticalStretch(1) policy.setVerticalPolicy(QSizePolicy.Fixed) self.le_league.setSizePolicy(policy) self.le_team = [MonitoredLineEdit() for y in range(2)] self.le_player = [[MonitoredLineEdit() for x in range( self.max_no_sets)] for y in range(2)] self.cb_race = [[QComboBox() for x in range(self.max_no_sets)] for y in range(2)] self.sl_score = [QSlider(Qt.Horizontal) for y in range(self.max_no_sets)] self.le_map = [MapLineEdit() for y in range(self.max_no_sets)] self.label_set = [QPushButton('#{}'.format(y + 1), self) for y in range(self.max_no_sets)] self.setContainer = [QHBoxLayout() for y in range(self.max_no_sets)] container = QHBoxLayout() for team_idx in range(2): self.le_team[team_idx].setText("TBD") self.le_team[team_idx].setAlignment( Qt.AlignCenter) self.le_team[team_idx].setPlaceholderText( "Team " + str(team_idx + 1)) policy = QSizePolicy() policy.setHorizontalStretch(4) policy.setHorizontalPolicy( QSizePolicy.Expanding) policy.setVerticalStretch(1) policy.setVerticalPolicy(QSizePolicy.Fixed) self.le_team[team_idx].setSizePolicy(policy) self.le_team[team_idx].setMinimumWidth(self.mimumLineEditWidth) self.le_team[team_idx].textModified.connect( lambda team_idx=team_idx: self.team_changed(team_idx)) self.qb_logo1 = IconPushButton() self.qb_logo1.setFixedWidth(self.raceWidth) self.qb_logo1.clicked.connect(lambda: self.parent.logoDialog(1, self)) logo = self.controller.logoManager.getTeam1(self._ctrlID) self.qb_logo1.setIcon(QIcon(logo.provideQPixmap())) self.qb_logo2 = IconPushButton() self.qb_logo2.setFixedWidth(self.raceWidth) self.qb_logo2.clicked.connect(lambda: self.parent.logoDialog(2, self)) logo = self.controller.logoManager.getTeam2(self._ctrlID) self.qb_logo2.setIcon(QIcon(logo.provideQPixmap())) self.sl_team = QSlider(Qt.Horizontal) self.sl_team.setTracking(False) self.sl_team.setMinimum(-1) self.sl_team.setMaximum(1) self.sl_team.setValue(0) self.sl_team.setTickPosition( QSlider.TicksBothSides) self.sl_team.setTickInterval(1) self.sl_team.valueChanged.connect(lambda x: self.sl_changed(-1, x)) self.sl_team.setToolTip(_('Choose your team')) self.sl_team.setMinimumHeight(5) self.sl_team.setFixedWidth(self.scoreWidth) policy = QSizePolicy() policy.setHorizontalStretch(0) policy.setHorizontalPolicy(QSizePolicy.Fixed) policy.setVerticalStretch(1) policy.setVerticalPolicy(QSizePolicy.Fixed) self.sl_team.setSizePolicy(policy) container = QGridLayout() button = QPushButton() pixmap = QIcon( scctool.settings.getResFile('update.png')) button.setIcon(pixmap) button.clicked.connect( lambda: self.controller.swapTeams()) button.setFixedWidth(self.labelWidth) button.setToolTip(_("Swap teams and logos.")) container.addWidget(button, 0, 0, 2, 1) label = QLabel(_("League:")) label.setAlignment(Qt.AlignCenter) policy = QSizePolicy() policy.setHorizontalStretch(4) policy.setHorizontalPolicy(QSizePolicy.Expanding) policy.setVerticalStretch(1) policy.setVerticalPolicy(QSizePolicy.Fixed) label.setSizePolicy(policy) container.addWidget(label, 0, 1, 1, 1) label = QLabel(_("Maps \ Teams:")) label.setAlignment(Qt.AlignCenter) policy = QSizePolicy() policy.setHorizontalStretch(4) policy.setHorizontalPolicy(QSizePolicy.Expanding) policy.setVerticalStretch(1) policy.setVerticalPolicy(QSizePolicy.Fixed) label.setSizePolicy(policy) container.addWidget(label, 1, 1, 1, 1) container.addWidget(self.qb_logo1, 0, 2, 2, 1) container.addWidget(self.le_league, 0, 3, 1, 3) container.addWidget(self.le_team[0], 1, 3, 1, 1) container.addWidget(self.sl_team, 1, 4, 1, 1) container.addWidget(self.le_team[1], 1, 5, 1, 1) container.addWidget(self.qb_logo2, 0, 6, 2, 1) layout.addLayout(container) for player_idx in range(self.max_no_sets): self.le_map[player_idx].textModified.connect( lambda player_idx=player_idx: self.map_changed(player_idx)) for team_idx in range(2): self.cb_race[team_idx][player_idx].\ currentIndexChanged.connect( lambda idx, t=team_idx, p=player_idx: self.race_changed(t, p)) self.le_player[team_idx][player_idx].textModified.connect( lambda t=team_idx, p=player_idx: self.player_changed(t, p)) self.le_player[team_idx][player_idx].setText("TBD") self.le_player[team_idx][player_idx].setAlignment( Qt.AlignCenter) self.le_player[team_idx][player_idx].setPlaceholderText( _("Player {} of team {}").format(player_idx + 1, team_idx + 1)) self.le_player[team_idx][player_idx].setMinimumWidth( self.mimumLineEditWidth) self.le_player[team_idx][player_idx].setContextMenuPolicy( Qt.CustomContextMenu) self.le_player[team_idx][player_idx].\ customContextMenuRequested.connect( lambda x, team_idx=team_idx, player_idx=player_idx: self.openPlayerContextMenu(team_idx, player_idx)) for i in range(4): self.cb_race[team_idx][player_idx].addItem( QIcon(scctool.settings.getResFile( str(i) + ".png")), "") self.cb_race[team_idx][player_idx].setFixedWidth( self.raceWidth) self.sl_score[player_idx].setMinimum(-1) self.sl_score[player_idx].setMaximum(1) self.sl_score[player_idx].setValue(0) self.sl_score[player_idx].setTickPosition( QSlider.TicksBothSides) self.sl_score[player_idx].setTickInterval(1) self.sl_score[player_idx].setTracking(False) self.sl_score[player_idx].valueChanged.connect( lambda x, player_idx=player_idx: self.sl_changed(player_idx, x)) self.sl_score[player_idx].setToolTip(_('Set the score')) self.sl_score[player_idx].setFixedWidth(self.scoreWidth) self.le_map[player_idx].setText("TBD") self.le_map[player_idx].setAlignment( Qt.AlignCenter) self.le_map[player_idx].setPlaceholderText( _("Map {}").format(player_idx + 1)) self.le_map[player_idx].setMinimumWidth( self.mimumLineEditWidth) # self.le_map[player_idx].setReadOnly(True) self.setContainer[player_idx] = QHBoxLayout() # self.label_set[player_idx].setText("#" + str(player_idx + 1)) # self.label_set[player_idx].setAlignment( # Qt.AlignCenter) self.label_set[player_idx].setToolTip( _("Select map on Mapstats Browser Source.")) self.label_set[player_idx].setEnabled(False) self.label_set[player_idx].clicked.connect( lambda x, player_idx=player_idx: self.showMap(player_idx)) self.label_set[player_idx].setFixedWidth(self.labelWidth) self.setContainer[player_idx].addWidget( self.label_set[player_idx], 0) self.setContainer[player_idx].addWidget( self.le_map[player_idx], 4) self.setContainer[player_idx].addWidget( self.cb_race[0][player_idx], 0) self.setContainer[player_idx].addWidget( self.le_player[0][player_idx], 4) self.setContainer[player_idx].addWidget( self.sl_score[player_idx], 0) self.setContainer[player_idx].addWidget( self.le_player[1][player_idx], 4) self.setContainer[player_idx].addWidget( self.cb_race[1][player_idx], 0) layout.addLayout(self.setContainer[player_idx]) layout.addItem(QSpacerItem( 0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding)) self.setLayout(layout) self.updateMapCompleters() self.updatePlayerCompleters() self.updateTeamCompleters()
def initUI(self): # 创建固定窗口大小 self.setFixedSize(535, 600) # 窗口标题 self.setWindowTitle('注册') # 无边框 self.setWindowFlags(Qt.FramelessWindowHint) self.setWindowIcon(QIcon(':/logo.png')) window_pale = QPalette() window_pale.setBrush(self.backgroundRole(),\ QBrush(QPixmap("UI/image/altermessage.jpg"))) self.setPalette(window_pale) #设置字体颜色 pe = QPalette() pe.setColor(QPalette.WindowText, Qt.white) # 程序名 self.lbl_main = QLabel('修改货运信息', self) self.lbl_main.move(10, 10) self.lbl_main.setPalette(pe) # 创建发货地级联布局 self.centralwidget = QWidget(self) self.centralwidget.setGeometry(90, 50, 400, 40) layout = QHBoxLayout(self.centralwidget) self.province_box = QComboBox(self, minimumWidth=30) # 市级以上 self.province_box.setMaxVisibleItems(35) self.city_box = QComboBox(self, minimumWidth=73) # 市 self.city_box.setMaxVisibleItems(35) self.county_box = QComboBox(self, minimumWidth=73) # 市级以下 self.county_box.setMaxVisibleItems(35) layout.addWidget(self.province_box) province = QLabel("省", self) province.setPalette(pe) layout.addWidget(province) layout.addItem( QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout.addWidget(self.city_box) city = QLabel("市", self) city.setPalette(pe) layout.addWidget(city) layout.addItem( QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout.addWidget(self.county_box) county = QLabel("区/县", self) county.setPalette(pe) layout.addWidget(county) # 创建目的地级联布局 self.centralwidget2 = QWidget(self) self.centralwidget2.setGeometry(90, 96, 400, 40) layout2 = QHBoxLayout(self.centralwidget2) self.province_box2 = QComboBox(self, minimumWidth=30) # 市级以上 self.province_box2.setMaxVisibleItems(35) self.city_box2 = QComboBox(self, minimumWidth=73) # 市 self.city_box2.setMaxVisibleItems(35) self.county_box2 = QComboBox(self, minimumWidth=73) # 市级以下 self.county_box2.setMaxVisibleItems(35) layout2.addWidget(self.province_box2) province2 = QLabel("省", self) province2.setPalette(pe) layout2.addWidget(province2) layout2.addItem( QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout2.addWidget(self.city_box2) city2 = QLabel("市", self) city2.setPalette(pe) layout2.addWidget(city2) layout2.addItem( QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout2.addWidget(self.county_box2) county2 = QLabel("区/县", self) county2.setPalette(pe) layout2.addWidget(county2) self.initModel() self.initSignal() self.initData() for i in range(self.province_box.count()): if self.province_box.itemText(i) == self.mess[1]: self.province_box.setCurrentIndex(i) break for i in range(self.city_box.count()): if self.city_box.itemText(i) == self.mess[2]: self.city_box.setCurrentIndex(i) break for i in range(self.county_box.count()): if self.county_box.itemText(i) == self.mess[3]: self.county_box.setCurrentIndex(i) break for i in range(self.province_box2.count()): if self.province_box2.itemText(i) == self.mess[4]: self.province_box2.setCurrentIndex(i) break for i in range(self.city_box2.count()): if self.city_box2.itemText(i) == self.mess[5]: self.city_box2.setCurrentIndex(i) break for i in range(self.county_box2.count()): if self.county_box2.itemText(i) == self.mess[6]: self.county_box2.setCurrentIndex(i) break #设置字体颜色 pe = QPalette() pe.setColor(QPalette.WindowText, Qt.darkGray) self.l = ['轻卡货车', '中型货车', '大型货车', '自卸货车', '半挂货车'] x = 100 self.bg1 = QButtonGroup(self) for i in range(len(self.l)): self.bu = QRadioButton(self.l[i], self) self.bu.setGeometry(x, 150, 75, 28) self.bu.setPalette(pe) self.bg1.addButton(self.bu, i) x += 80 self.info1 = self.mess[7] self.bg1.buttonClicked.connect(self.rbclicked) self.bg1.buttons()[self.l.index(self.mess[7])].toggle() self.l2 = ['均货', '重货', '轻货', '整车', '零担'] x = 100 self.bg12 = QButtonGroup(self) for i in range(10, 10 + len(self.l2)): self.bu = QRadioButton(self.l2[i - 10], self) self.bu.setGeometry(x, 180, 75, 28) # self.bu.toggle() self.bu.setPalette(pe) self.bg12.addButton(self.bu, i) x += 80 self.info12 = self.mess[8] self.bg12.buttonClicked.connect(self.rbclicked) self.bg12.buttons()[self.l2.index(self.mess[8])].toggle() self.l3 = ['普货', '鲜货', '冻货', '大件设备'] x = 100 self.bg13 = QButtonGroup(self) for i in range(20, 20 + len(self.l3)): self.bu = QRadioButton(self.l3[i - 20], self) self.bu.setGeometry(x, 210, 75, 28) self.bu.setPalette(pe) self.bg13.addButton(self.bu, i) x += 80 self.info13 = self.mess[9] self.bg13.buttonClicked.connect(self.rbclicked) self.bg13.buttons()[self.l3.index(self.mess[9])].toggle() self.l4 = ['无要求','20-50万','50-100万',\ '100-300万','300万以上'] x = 100 self.bg14 = QButtonGroup(self) for i in range(30, 30 + len(self.l4)): self.bu = QRadioButton(self.l4[i - 30], self) self.bu.setGeometry(x, 240, 75, 28) self.bu.setPalette(pe) self.bg14.addButton(self.bu, i) x += 80 self.info14 = self.mess[10] self.bg14.buttonClicked.connect(self.rbclicked) self.bg14.buttons()[self.l4.index(self.mess[10])].toggle() conceal = "background:\ transparent;border-width:0;border-style:outset" self.Edit_bulk = QLineEdit(self) self.Edit_bulk.setGeometry(100, 290, 100, 22) self.Edit_bulk.setPlaceholderText('方量') self.Edit_bulk.setStyleSheet(conceal) self.Edit_bulk.setValidator(QRegExpValidator\ (QRegExp(r"[0-9]+.?[0-9]?"),self)) self.Edit_bulk.setMaxLength(6) self.Edit_bulk.setToolTip('方量最大长度6位') self.Edit_bulk.setText(self.mess[11]) self.weight = QLineEdit(self) self.weight.setGeometry(245, 290, 100, 22) self.weight.setPlaceholderText('总吨位') self.weight.setStyleSheet(conceal) self.weight.setValidator(QRegExpValidator\ (QRegExp(r"[0-9]+.?[0-9]?"),self)) self.weight.setMaxLength(6) self.weight.setToolTip('吨位最大长度6位') self.weight.setText(self.mess[12]) self.Edit_total = QLineEdit(self) self.Edit_total.setGeometry(400, 290, 100, 22) self.Edit_total.setPlaceholderText('运费') self.Edit_total.setStyleSheet(conceal) self.Edit_total.setValidator(QRegExpValidator\ (QRegExp(r"[0-9]+"),self)) self.Edit_total.setMaxLength(7) self.Edit_total.setToolTip('运费最大长度为6位的整数') self.Edit_total.setText(self.mess[13]) self.text_describe = QTextEdit(self) self.text_describe.setGeometry(100, 340, 370, 150) self.text_describe.setToolTip('300字以内') self.text_describe.setStyleSheet(conceal) self.text_describe.setPlaceholderText('300字以内') self.text_describe.setPlainText(self.mess[15]) self.Edit_phone = QLineEdit(self) self.Edit_phone.setGeometry(100, 518, 150, 22) self.Edit_phone.setPlaceholderText('手机号码') self.Edit_phone.setStyleSheet(conceal) self.Edit_phone.setValidator(QRegExpValidator\ (QRegExp(r"[0-9]+"),self)) self.Edit_phone.setMaxLength(11) self.Edit_phone.setToolTip('联系电话11位') self.Edit_phone.setText(self.mess[14]) l = ['请选择','12小时','24小时','3天内','5天内',\ '1周内','1月内','3月内','1年内','永久'] self.combo = QComboBox(self) self.combo.addItems(l) self.combo.setGeometry(400, 518, 70, 20) validity = int(self.mess[17]) - int(self.mess[16]) if validity == 43200: validity = '12小时' elif validity == 86400: validity = '24小时' elif validity == 259200: validity = '3天内' elif validity == 432000: validity = '5天内' elif validity == 604800: validity = '1周内' elif validity == 2592000: validity = '1月内' elif validity == 7776000: validity = '3月内' elif validity == 31536000: validity = '1年内' elif validity == 999999999: validity = '永久' for i in range(self.combo.count()): if self.combo.itemText(i) == validity: self.combo.setCurrentIndex(i) break color2 = "QPushButton{border:none;}"\ "QPushButton:hover{border-image:url(%s);border:none;}" self.button_issue = QPushButton(' ', self) self.button_issue.setGeometry(100, 562, 230, 26) self.button_issue.setStyleSheet\ (color2 % 'UI/image/altermessage1.png') self.button_issue.clicked.connect(self.onissue) self.centralwidget = QWidget(self) self.centralwidget.setGeometry(350, 555, 150, 40) self.gridLayout = QGridLayout(self.centralwidget) # 定义获取焦点事件 self.Edit_bulk.installEventFilter(self) self.Edit_total.installEventFilter(self) self.text_describe.installEventFilter(self) self.Edit_phone.installEventFilter(self) self.combo.installEventFilter(self) self.province_box.installEventFilter(self) self.city_box.installEventFilter(self) self.county_box.installEventFilter(self) self.province_box2.installEventFilter(self) self.city_box2.installEventFilter(self) self.county_box2.installEventFilter(self) self.button_little = QPushButton(' ', self) self.button_little.setGeometry(471, 0, 32, 25) self.button_little.setToolTip('最小化') self.button_little.setStyleSheet\ (color2 % 'UI/image/login3.png') self.button_close = QPushButton(' ', self) self.button_close.setGeometry(503, 0, 32, 25) self.button_close.setToolTip('关闭') self.button_close.setStyleSheet\ (color2 % 'UI/image/login2.png') self.button_little.clicked.connect(self.showMinimized)
class CToolBarArea(QWidget): signalDragStart = pyqtSignal() signalDragEnd = pyqtSignal() signalItemDropped = pyqtSignal(CToolBarAreaItem, QWidget, int) def __init__(self, parent, orientation): super().__init__(parent) self.editor = parent self.orientation = orientation self.dropTargetSpacer = None self.actionContextPosition = QPoint() self.isLocked = False if self.orientation == Qt.Horizontal: self.layout_ = QBoxLayout(QBoxLayout.LeftToRight) else: self.layout_ = QBoxLayout(QBoxLayout.TopToBottom) self.layout_.setSpacing(0) self.layout_.setContentsMargins(0, 0, 0, 0) self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.setLayout(self.layout_) self.setAcceptDrops(True) self.setContextMenuPolicy(Qt.CustomContextMenu) # print ( "CToolBarArea.__init__", parent ) def getOrientation(self): return self.orientation def getToolBars(self): items = getAllItems(self) toolBarItems = [] for item in items: if item.getType() != CToolBarAreaType.ToolBar: continue toolBarItems.append(item) return toolBarItems def getLargestItemMinimumSize(self): minSize = self.minimumSize() items = getAllItems(self) for item in items: minSize = minSize.expandedTo(item.getMinimumSize()) return minSize def setOrientation(self, orientation): self.orientation = orientation self.layout_.setDirection(QBoxLayout.LeftToRight if self.orientation == Qt.Horizontal else QBoxLayout.TopToBottom) self.updateLayoutAlignment() items = getAllItems(self) for item in items: item.setOrientation(self.orientation) def setActionContextPosition(self, actionContextPosition): self.actionContextPosition = actionContextPosition def fillContextMenu(self, menu): pass def addItem(self, item, targetIndex): item.signalDragStart.connect(self.onDragStart) item.signalDragEnd.connect(self.onDragEnd) item.setOrientation(self.orientation) item.setLocked(self.isLocked) self.layout_.insertWidget(targetIndex, item) item.setArea(self) def addToolBar(self, toolBar, targetIndex): self.addItem(CToolBarItem(self, toolBar, self.orientation), targetIndex) def addSpacer(self, spacerType, targetIndex): self.addItem(CSpacerItem(self, spacerType, self.orientation), targetIndex) if spacerType == CSpacerType.Expanding: self.layout_.setAlignment(0) def removeItem(self, item): self.layout_.removeWidget(item) item.signalDragStart.disconnect(self) item.signalDragEnd.disconnect(self) self.updateLayoutAlignment(item) def deleteToolBar(self, toolBarItem): if self.isAncestorOf(toolBarItem): qWarning("Trying to remove non-owned toolbar from area") return toolBarItem.deleteLater() def hideAll(self): items = getAllItems(self) for item in items: item.setVisible(False) def findToolBarByName(self, szToolBarName): toolBarItems = self.findChildren(CToolBarItem, "", Qt.FindDirectChildrenOnly) for toolBarItem in toolBarItems: if toolBarItem.getName() == szToolBarName: return toolBarItem print("Toolbar not found: %s" % szToolBarName) return None def setLocked(self, isLocked): self.isLocked = isLocked items = getAllItems(self) for item in items: item.setLocked(isLocked) def getState(self): pass def setState(self, state): pass def dragEnterEvent(self, event): print("CToolBarArea.dragEnterEvent", event) dragDropData = CDragDropData.fromMimeData(event.mimeData()) if dragDropData.hasCustomData(CToolBarAreaItem.getMimeType()): byteArray = dragDropData.getCustomData( CToolBarAreaItem.getMimeType()) stream = QDataStream(byteArray) value = None stream >> value draggedItem = value if isinstance(value, CToolBarAreaItem) else None if not self.parentWidget().isAncestorOf(draggedItem): return event.acceptProposedAction() self.setProperty("dragHover", True) self.style().unpolish(self) self.style().polish(self) def dragMoveEvent(self, event): dragDropData = CDragDropData.fromMimeData(event.mimeData()) if dragDropData.hasCustomData(CToolBarAreaItem.getMimeType()): targetIndex = self.getPlacementIndexFromPosition( self.mapToGlobal(event.pos())) event.acceptProposedAction() if self.dropTargetSpacer and targetIndex == self.layout_.indexOf( self.dropTargetSpacer): return byteArray = dragDropData.getCustomData( CToolBarAreaItem.getMimeType()) stream = QDataStream(byteArray) value = None stream >> value draggedItem = value if isinstance(value, CToolBarAreaItem) else None if not self.parentWidget().isAncestorOf(draggedItem): return spacerWidth = draggedItem.width() spacerHeight = draggedItem.height() if draggedItem.getOrientation() != self.orientation: tempWidth = spacerWidth spacerWidth = spacerHeight spacerHeight = tempWidth if self.dropTargetSpacer == None: self.dropTargetSpacer = QSpacerItem(spacerWidth, spacerHeight, QSizePolicy.Fixed, QSizePolicy.Fixed) else: spacerIndex = self.layout_.indexOf(self.dropTargetSpacer) if spacerIndex == targetIndex - 1 or ( targetIndex == -1 and spacerIndex == self.layout_.count() - 1): return self.removeDropTargetSpacer() self.dropTargetSpacer = QSpacerItem(spacerWidth, spacerHeight, QSizePolicy.Fixed, QSizePolicy.Fixed) self.layout_.insertSpacerItem(targetIndex, self.dropTargetSpacer) def dragLeaveEvent(self, event): self.removeDropTargetSpacer() self.setProperty("dragHover", False) self.style().unpolish(self) self.style().polish(self) def dropEvent(self, event): dragDropData = CDragDropData.fromMimeData(event.mimeData()) if dragDropData.hasCustomData(CToolBarAreaItem.getMimeType()): event.acceptProposedAction() byteArray = dragDropData.getCustomData( CToolBarAreaItem.getMimeType()) stream = QDataStream(byteArray) value = None stream >> value item = value if isinstance(value, CToolBarAreaItem) else None targetIndex = -1 if self.dropTargetSpacer: targetIndex = self.layout_.indexOf(self.dropTargetSpacer) containerIndex = self.layout_.indexOf(item) if containerIndex >= 0 and containerIndex < targetIndex: targetIndex -= 1 self.removeDropTargetSpacer() if targetIndex >= self.layout_.count(): targetIndex = -1 self.signalItemDropped.emit(item, self, targetIndex) def customEvent(self, event): pass def paintEvent(self, event): styleOption = QStyleOption() styleOption.initFrom(self) painter = QPainter(self) self.style().drawPrimitive(QStyle.PE_Widget, styleOption, painter, self) def onDragStart(self, item): self.updateLayoutAlignment(item) item.setVisiable(False) self.signalDragStart.emit() def onDragEnd(self, item): item.setVisiable(True) self.signalDragEnd.emit() def removeDropTargetSpacer(self): if self.dropTargetSpacer: self.layout_.removeItem(self.dropTargetSpacer) self.dropTargetSpacer = None def indexForItem(self, item): return self.layout_.indexOf(item) def moveItem(self, item, destinationIndex): sourceIndex = self.indexForItem(item) if sourceIndex == destinationIndex: return self.layout_.insertWidget(destinationIndex, item) def updateLayoutAlignment(self, itemToBeRemoved=None): spacers = self.findChildren(CSpacerItem, "", Qt.FindDirectChildrenOnly) expandingSpacers = [] for spacer in spacers: if spacer.getSpacerType() == CSpacerType.Expanding: expandingSpacers.append(spacer) if len(expandingSpacers) == 0 or len(expandingSpacers) != 0 or ( len(expandingSpacers) == 1 and expandingSpacers[0] == itemToBeRemoved): if self.orientation == Qt.Horizontal: self.layout_.setAlignment(Qt.AlignLeft | Qt.AlignVCenter) else: self.layout_.setAlignment(Qt.AlignTop | Qt.AlignHCenter) def getItemAtPosition(self, globalPos): object = QApplication.widgetAt(globalPos) if object == None or object == self: return None item = object if isinstance(object, CToolBarAreaItem) else None while item == None and object.parent(): object = object.parent() item = object if isinstance(object, CToolBarAreaItem) else None return item def getPlacementIndexFromPosition(self, globalPos): targetIndex = -1 item = self.getItemAtPosition(globalPos) if item == None: localPos = self.mapFromGlobal(globalPos) if self.dropTargetSpacer: geom = self.dropTargetSpacer.geometry() if geom.contains(localPos): targetIndex = self.layout_.indexOf(self.dropTargetSpacer) return targetIndex targetIndex = self.indexForItem(item) if self.orientation == Qt.Horizontal and item.mapFromGlobal( globalPos).x() > item.width() / 2: targetIndex += 1 elif self.orientation == Qt.Vertical and item.mapFromGlobal( globalPos).y() > item.height() / 2: targetIndex += 1 if targetIndex >= self.layout_.count(): targetIndex = -1 return targetIndex
def _setupUi(self): self.setWindowTitle(self.app.NAME) self.resize(420, 338) self.centralwidget = QWidget(self) self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setContentsMargins(4, 0, 4, 0) self.verticalLayout.setSpacing(0) hl = QHBoxLayout() label = QLabel(tr("Application Mode:"), self) label.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) hl.addWidget(label) self.appModeRadioBox = RadioBox( self, items=[tr("Standard"), tr("Music"), tr("Picture")], spread=False) hl.addWidget(self.appModeRadioBox) self.verticalLayout.addLayout(hl) hl = QHBoxLayout() hl.setAlignment(Qt.AlignLeft) label = QLabel(tr("Scan Type:"), self) label.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) hl.addWidget(label) self.scanTypeComboBox = QComboBox(self) self.scanTypeComboBox.setSizePolicy( QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)) self.scanTypeComboBox.setMaximumWidth(400) hl.addWidget(self.scanTypeComboBox) self.showPreferencesButton = QPushButton(tr("More Options"), self.centralwidget) self.showPreferencesButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) hl.addWidget(self.showPreferencesButton) self.verticalLayout.addLayout(hl) self.promptLabel = QLabel( tr('Select folders to scan and press "Scan".'), self.centralwidget) self.verticalLayout.addWidget(self.promptLabel) self.treeView = QTreeView(self.centralwidget) self.treeView.setSelectionMode(QAbstractItemView.ExtendedSelection) self.treeView.setSelectionBehavior(QAbstractItemView.SelectRows) self.treeView.setAcceptDrops(True) triggers = (QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed | QAbstractItemView.SelectedClicked) self.treeView.setEditTriggers(triggers) self.treeView.setDragDropOverwriteMode(True) self.treeView.setDragDropMode(QAbstractItemView.DropOnly) self.treeView.setUniformRowHeights(True) self.verticalLayout.addWidget(self.treeView) self.horizontalLayout = QHBoxLayout() self.removeFolderButton = QPushButton(self.centralwidget) self.removeFolderButton.setIcon(QIcon(QPixmap(":/minus"))) self.removeFolderButton.setShortcut("Del") self.horizontalLayout.addWidget(self.removeFolderButton) self.addFolderButton = QPushButton(self.centralwidget) self.addFolderButton.setIcon(QIcon(QPixmap(":/plus"))) self.horizontalLayout.addWidget(self.addFolderButton) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem1) self.loadResultsButton = QPushButton(self.centralwidget) self.loadResultsButton.setText(tr("Load Results")) self.horizontalLayout.addWidget(self.loadResultsButton) self.scanButton = QPushButton(self.centralwidget) self.scanButton.setText(tr("Scan")) self.scanButton.setDefault(True) self.horizontalLayout.addWidget(self.scanButton) self.verticalLayout.addLayout(self.horizontalLayout) self.setCentralWidget(self.centralwidget) self._setupActions() self._setupMenu() if self.app.prefs.directoriesWindowRect is not None: self.setGeometry(self.app.prefs.directoriesWindowRect) else: moveToScreenCenter(self)
def initAppletDrawerUi(self): localDir = os.path.split(__file__)[0] self._drawer = self._cropControlUi data_has_z_axis = True if self.topLevelOperatorView.InputImage.ready(): tShape = self.topLevelOperatorView.InputImage.meta.getTaggedShape() if not 'z' in tShape or tShape['z'] == 1: data_has_z_axis = False self._cropControlUi._minSliderZ.setVisible(data_has_z_axis) self._cropControlUi._minSliderZ.setVisible(data_has_z_axis) self._cropControlUi._maxSliderZ.setVisible(data_has_z_axis) self._cropControlUi._minSpinZ.setVisible(data_has_z_axis) self._cropControlUi._maxSpinZ.setVisible(data_has_z_axis) self._cropControlUi.labelMinZ.setVisible(data_has_z_axis) self._cropControlUi.labelMaxZ.setVisible(data_has_z_axis) self._cropControlUi.AddCropButton.clicked.connect(bind(self.newCrop)) self._cropControlUi.SetCropButton.setVisible(False) self.editor.cropModel.mouseRelease.connect(bind(self.setCrop)) self.topLevelOperatorView.MinValueT.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MaxValueT.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MinValueX.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MaxValueX.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MinValueY.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MaxValueY.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MinValueZ.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.MaxValueZ.notifyDirty( self.apply_operator_settings_to_gui) self.topLevelOperatorView.InputImage.notifyDirty(self.setDefaultValues) self.topLevelOperatorView.PredictionImage.notifyDirty( self.setDefaultValues) layout = QVBoxLayout() layout.setSpacing(0) layout.addWidget(self._cropControlUi) layout.addSpacerItem(QSpacerItem(0, 0, vPolicy=QSizePolicy.Expanding)) self.setDefaultValues() self.apply_operator_settings_to_gui() self.editor.showCropLines(True) self.editor.cropModel.setEditable(True) self.editor.cropModel.changed.connect(self.onCropModelChanged) self.editor.posModel.timeChanged.connect(self.updateTime) self._cropControlUi._minSliderT.valueChanged.connect( self._onMinSliderTMoved) self._cropControlUi._maxSliderT.valueChanged.connect( self._onMaxSliderTMoved) self._cropControlUi._minSliderX.valueChanged.connect( self._onMinSliderXMoved) self._cropControlUi._maxSliderX.valueChanged.connect( self._onMaxSliderXMoved) self._cropControlUi._minSliderY.valueChanged.connect( self._onMinSliderYMoved) self._cropControlUi._maxSliderY.valueChanged.connect( self._onMaxSliderYMoved) self._cropControlUi._minSliderZ.valueChanged.connect( self._onMinSliderZMoved) self._cropControlUi._maxSliderZ.valueChanged.connect( self._onMaxSliderZMoved) self._cropControlUi.cropListView.deleteCrop.connect(self.onDeleteCrop) self._cropControlUi.cropListView.colorsChanged.connect( self.onColorsChanged) self._initCropListView()
def __init__(self, inputTab): super().__init__() self.input = inputTab self.ewsd = None self.xlim = None self.ylim = None # set up a custom plot viewer self.plotViewer = PlotViewer() self.plotViewer.exitAct.setEnabled(False) self.plotViewer.menuBar.setVisible(False) self.XLimitsAct = QAction('Change X limits', self, triggered=self.changeXlimits, enabled=False, icon=self.style().standardIcon(QStyle.SP_DialogNoButton)) self.YLimitsAct = QAction('Change Y limits', self, triggered=self.changeYlimits, enabled=False, icon=self.style().standardIcon(QStyle.SP_DialogNoButton)) self.plotViewer.toolBar.addAction(self.XLimitsAct) self.plotViewer.toolBar.addAction(self.YLimitsAct) self.plotViewer.toolBar.addSeparator() self.plotViewer.toolBar.addAction(self.plotViewer.xLabelAct) self.plotViewer.toolBar.addSeparator() self.plotViewer.toolBar.addAction(self.plotViewer.yLabelAct) self.plotViewer.toolBar.addSeparator() self.plotViewer.toolBar.addAction(self.plotViewer.titleAct) # put it in a group box to get a nice border gb = QGroupBox() ly = QHBoxLayout() ly.addWidget(self.plotViewer) gb.setLayout(ly) gb.setStyleSheet('QGroupBox {border: 8px solid rgb(108, 122, 137); border-radius: 6px }') gb.setMinimumWidth(600) # create the reference time selection widget self.timeSelection = DoubleTimeSelection() # create the compute button self.btnCompute = QPushButton('Compute', icon=self.style().standardIcon(QStyle.SP_DialogApplyButton)) self.btnCompute.setFixedSize(105, 50) self.btnCompute.clicked.connect(self.btnComputeEvent) # create the color map button self.btnColorMap = QPushButton('2D View', icon=self.style().standardIcon(QStyle.SP_DialogHelpButton)) self.btnColorMap.setFixedSize(105, 50) self.btnColorMap.clicked.connect(self.btnColorMapEvent) self.btnColorMap.setEnabled(False) # initialize the map for 2D view canvas = ColorMapCanvas() self.map = MapViewer(canvas) self.has_map = False self.map.closeEvent = lambda event: self.btnColorMap.setEnabled(True) # create the stats box self.resultBox = QPlainTextEdit() self.resultBox.setMinimumWidth(400) self.resultBox.setMaximumWidth(600) # set layout mainLayout = QVBoxLayout() mainLayout.addItem(QSpacerItem(10, 10)) mainLayout.addWidget(self.timeSelection) vlayout = QVBoxLayout() hlayout = QHBoxLayout() hlayout.addWidget(self.btnColorMap) hlayout.addWidget(self.btnCompute) hlayout.setSpacing(10) vlayout.addLayout(hlayout) vlayout.setAlignment(hlayout, Qt.AlignTop | Qt.AlignRight) vlayout.addItem(QSpacerItem(10, 10)) vlayout.addWidget(self.resultBox) vlayout.setAlignment(Qt.AlignHCenter) hlayout = QHBoxLayout() hlayout.addLayout(vlayout) hlayout.addWidget(gb, Qt.AlignHCenter) hlayout.setSpacing(10) mainLayout.addLayout(hlayout) self.setLayout(mainLayout) # template for text output self.template = '=== EWSD distribution between Ref (frame {}) and Test (frame {}) ===\n'\ 'Mean \t{:<30}\n' \ 'Variance \t{:<30}\n' \ 'Min \t{:<30}\n' \ 'Quartile 25 \t{:<30}\n' \ 'Median \t{:<30}\n' \ 'Quartile 75 \t{:<30}\n' \ 'Max \t{:<30}\n'
def horizontalSpacer(size=None): if size: return QSpacerItem(size, 1, QSizePolicy.Fixed, QSizePolicy.Fixed) else: return QSpacerItem(1, 1, QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)
def verticalSpacer(size=None): if size: return QSpacerItem(1, size, QSizePolicy.Fixed, QSizePolicy.Fixed) else: return QSpacerItem(1, 1, QSizePolicy.Fixed, QSizePolicy.MinimumExpanding)
def __init__(self, mode=RegExpMode, parent=None): """ Constructor @param mode mode of the dialog (one of RegExpMode, WildcardMode, W3CMode) @param parent parent widget (QWidget) """ super(QRegExpWizardCharactersDialog, self).__init__(parent) self.setupUi(self) self.__mode = mode if mode == QRegExpWizardCharactersDialog.WildcardMode: self.predefinedBox.setEnabled(False) self.predefinedBox.hide() elif mode == QRegExpWizardCharactersDialog.RegExpMode: self.w3cInitialIdentifierCheckBox.hide() self.w3cNonInitialIdentifierCheckBox.hide() self.w3cNmtokenCheckBox.hide() self.w3cNonNmtokenCheckBox.hide() elif mode == QRegExpWizardCharactersDialog.W3CMode: self.__initCharacterSelectors() self.comboItems = [] self.singleComboItems = [] # these are in addition to the above self.comboItems.append((self.tr("Normal character"), "-c")) if mode == QRegExpWizardCharactersDialog.RegExpMode: self.comboItems.append( (self.tr("Unicode character in hexadecimal notation"), "-h")) self.comboItems.append( (self.tr("ASCII/Latin1 character in octal notation"), "-o")) self.singleComboItems.append(("---", "-i")) self.singleComboItems.append( (self.tr("Bell character (\\a)"), "\\a")) self.singleComboItems.append((self.tr("Page break (\\f)"), "\\f")) self.singleComboItems.append((self.tr("Line feed (\\n)"), "\\n")) self.singleComboItems.append( (self.tr("Carriage return (\\r)"), "\\r")) self.singleComboItems.append( (self.tr("Horizontal tabulator (\\t)"), "\\t")) self.singleComboItems.append( (self.tr("Vertical tabulator (\\v)"), "\\v")) elif mode == QRegExpWizardCharactersDialog.W3CMode: self.comboItems.append( (self.tr("Unicode character in hexadecimal notation"), "-h")) self.comboItems.append( (self.tr("ASCII/Latin1 character in octal notation"), "-o")) self.singleComboItems.append(("---", "-i")) self.singleComboItems.append((self.tr("Line feed (\\n)"), "\\n")) self.singleComboItems.append( (self.tr("Carriage return (\\r)"), "\\r")) self.singleComboItems.append( (self.tr("Horizontal tabulator (\\t)"), "\\t")) self.singleComboItems.append(("---", "-i")) self.singleComboItems.append( (self.tr("Character Category"), "-ccp")) self.singleComboItems.append((self.tr("Character Block"), "-cbp")) self.singleComboItems.append( (self.tr("Not Character Category"), "-ccn")) self.singleComboItems.append( (self.tr("Not Character Block"), "-cbn")) self.charValidator = QRegExpValidator(QRegExp(".{0,1}"), self) self.hexValidator = QRegExpValidator(QRegExp("[0-9a-fA-F]{0,4}"), self) self.octValidator = QRegExpValidator(QRegExp("[0-3]?[0-7]{0,2}"), self) # generate dialog part for single characters self.singlesBoxLayout = QVBoxLayout(self.singlesBox) self.singlesBoxLayout.setObjectName("singlesBoxLayout") self.singlesBoxLayout.setSpacing(6) self.singlesBoxLayout.setContentsMargins(6, 6, 6, 6) self.singlesBox.setLayout(self.singlesBoxLayout) self.singlesView = QScrollArea(self.singlesBox) self.singlesView.setObjectName("singlesView") self.singlesBoxLayout.addWidget(self.singlesView) self.singlesItemsBox = QWidget(self) self.singlesView.setWidget(self.singlesItemsBox) self.singlesItemsBox.setObjectName("singlesItemsBox") self.singlesItemsBox.setMinimumWidth(1000) self.singlesItemsBoxLayout = QVBoxLayout(self.singlesItemsBox) self.singlesItemsBoxLayout.setContentsMargins(6, 6, 6, 6) self.singlesItemsBoxLayout.setSpacing(6) self.singlesItemsBox.setLayout(self.singlesItemsBoxLayout) self.singlesEntries = [] self.__addSinglesLine() hlayout0 = QHBoxLayout() hlayout0.setContentsMargins(0, 0, 0, 0) hlayout0.setSpacing(6) hlayout0.setObjectName("hlayout0") self.moreSinglesButton = QPushButton(self.tr("Additional Entries"), self.singlesBox) self.moreSinglesButton.setObjectName("moreSinglesButton") hlayout0.addWidget(self.moreSinglesButton) hspacer0 = QSpacerItem(30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) hlayout0.addItem(hspacer0) self.singlesBoxLayout.addLayout(hlayout0) self.moreSinglesButton.clicked.connect(self.__addSinglesLine) # generate dialog part for character ranges self.rangesBoxLayout = QVBoxLayout(self.rangesBox) self.rangesBoxLayout.setObjectName("rangesBoxLayout") self.rangesBoxLayout.setSpacing(6) self.rangesBoxLayout.setContentsMargins(6, 6, 6, 6) self.rangesBox.setLayout(self.rangesBoxLayout) self.rangesView = QScrollArea(self.rangesBox) self.rangesView.setObjectName("rangesView") self.rangesBoxLayout.addWidget(self.rangesView) self.rangesItemsBox = QWidget(self) self.rangesView.setWidget(self.rangesItemsBox) self.rangesItemsBox.setObjectName("rangesItemsBox") self.rangesItemsBox.setMinimumWidth(1000) self.rangesItemsBoxLayout = QVBoxLayout(self.rangesItemsBox) self.rangesItemsBoxLayout.setContentsMargins(6, 6, 6, 6) self.rangesItemsBoxLayout.setSpacing(6) self.rangesItemsBox.setLayout(self.rangesItemsBoxLayout) self.rangesEntries = [] self.__addRangesLine() hlayout1 = QHBoxLayout() hlayout1.setContentsMargins(0, 0, 0, 0) hlayout1.setSpacing(6) hlayout1.setObjectName("hlayout1") self.moreRangesButton = QPushButton(self.tr("Additional Entries"), self.rangesBox) self.moreSinglesButton.setObjectName("moreRangesButton") hlayout1.addWidget(self.moreRangesButton) hspacer1 = QSpacerItem(30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) hlayout1.addItem(hspacer1) self.rangesBoxLayout.addLayout(hlayout1) self.moreRangesButton.clicked.connect(self.__addRangesLine)