class QConditionsWidget(QFrame): """ UI Component to display Turn Number, Day Time & Hour and weather combined. """ def __init__(self): super(QConditionsWidget, self).__init__() self.setProperty("style", "QConditionsWidget") self.layout = QGridLayout() self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(0) self.layout.setVerticalSpacing(0) self.setLayout(self.layout) self.time_turn_widget = QTimeTurnWidget() self.time_turn_widget.setStyleSheet("QGroupBox { margin-right: 0px; }") self.layout.addWidget(self.time_turn_widget, 0, 0) self.weather_widget = QWeatherWidget() self.weather_widget.setStyleSheet( "QGroupBox { margin-top: 5px; margin-left: 0px; border-left: 0px; }" ) self.weather_widget.hide() self.layout.addWidget(self.weather_widget, 0, 1) def setCurrentTurn(self, turn: int, conditions: Conditions) -> None: """Sets the turn information display. :arg turn Current turn number. :arg conditions Current time and weather conditions. """ self.time_turn_widget.setCurrentTurn(turn, conditions) self.weather_widget.setCurrentTurn(turn, conditions) self.weather_widget.show()
def init(self): widget = QWidget() layout = QGridLayout(widget) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) num = 0 self.ColorDict = dict() self.ButtonList = QButtonGroup() for column in range(self._columns): for row in range(self._rows): if num < len(self.palette): newColor = self.palette[num] button = QPushButton('') button.setContentsMargins(0,0,0,0) button.setStyleSheet("padding: 0px;margin: 0px;") button.setFixedSize(20,20) self.ColorDict[button] = self.palette[num] self.ButtonList.addButton(button) pixmap = QPixmap(20, 20) pixmap.fill(newColor) button.setIcon(QIcon(pixmap)) layout.addWidget(button, row, column) num+=1 else: break self.ButtonList.buttonClicked.connect(self.handleButton) self.setDefaultWidget(widget)
def setDeviceStatusArea(self): form_box = FormGroupBox("Device Status", self) form_box.frame_layout.addRow(DeviceDetection.ALERT_PRESENT.value) # Alert type inner group box alert_form_box = FormGroupBox("Check all that apply:", self) alert_grid = QWidget(self) alert_lay = QGridLayout(alert_grid) alert_lay.setContentsMargins(0, 0, 0, 0) alert_lay.addWidget(DeviceDetection.AUDIO_AT_DEVICE.value, 0, 0) alert_lay.addWidget(DeviceDetection.IN_APP_ALERT.value, 0, 1) alert_lay.addWidget(DeviceDetection.AUTO_CALL.value, 0, 2) alert_lay.addWidget(DeviceDetection.VISUAL_AT_DEVICE.value, 1, 0) alert_lay.addWidget(DeviceDetection.TEXT_MSG.value, 1, 1) alert_lay.addWidget(DeviceDetection.CALL_BY_RETAILER.value, 1, 2) alert_lay.addWidget(DeviceDetection.PUSH_NOTIFY.value, 2, 0) alert_lay.addWidget(DeviceDetection.EMAIL.value, 2, 1) other_row = QWidget(self) other_lay = QFormLayout(other_row) other_lay.setContentsMargins(0, 0, 0, 0) other_lay.addRow("Other?", DeviceDetection.OTHER.value) alert_lay.addWidget(other_row, 2, 2) alert_form_box.frame_layout.addRow(alert_grid) form_box.frame_layout.addRow(alert_form_box) self._scroll_layout.addRow(form_box)
def gui_init(self): self.setMaximumHeight(16) layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(2) self.setLayout(layout) for i, but in enumerate(self.sorted_move_buttons): if but == abs(but): pref = 'p' else: pref = 'm' def some(): print('SOME') button = LongButton(self) button.released.connect(some) button.setStyleSheet("padding: 0px;") layout.addWidget(button, 0, i, Qt.AlignCenter) if self.sorted_move_buttons[but]: self.__long_buttos__.append(button) button.setIcon(Icon(r'jog\JOG{}{}_32'.format(pref, abs(but)))) button.setIconSize(QSize(32, 32)) button.setFixedSize(QSize(32, 32)) button.setText("") button.pressed.connect(partial(self.buttons_action, but))
def _layout( self ) -> Tuple[QGridLayout, QComboBox, QLabel, QLabel, QListWidget]: layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) page_label = QLabel('Page:') page_label.setFixedWidth(40) layout.addWidget(page_label, 0, 0) # Page select dropdown page_select = QComboBox() page_select.currentTextChanged.connect(self._on_page_changed) page_select.setFixedWidth(60) layout.addWidget(page_select, 0, 1) # Query results and image label query_label = QLabel('Query:') layout.addWidget(query_label, 0, 2) viewing_label = QLabel('Viewing:') layout.addWidget(viewing_label, 0, 3) # Gallery gallery = QListWidget() gallery.setFlow(QListWidget.LeftToRight) gallery.setWrapping(False) gallery.setViewMode(QListWidget.IconMode) gallery.setIconSize(QSize(self.thumbnail_width, self.thumbnail_height)) gallery.currentItemChanged.connect(self._on_item_changed) layout.addWidget(gallery, 1, 0, 1, 4) return layout, page_select, query_label, viewing_label, gallery
def update_params(self, plist: list) -> QGridLayout: """Update camera's paramters and sliders shown on the windows. """ #self.current_params.clear() self.current_params = self.camera.get_current_params("selected", plist) for key, value in self.current_params.items(): self.add_slider(key) # add sliders grid = QGridLayout() grid.setSpacing(15) grid.setContentsMargins(20, 20, 20, 20) for row, param in enumerate(self.current_params): grid.addWidget(self.current_params[param]["slider_label"], row, 0) grid.addWidget(self.current_params[param]["slider"], row, 1) grid.addWidget(self.current_params[param]["slider_value"], row, 2) if len(self.current_params) > 15: self.param_separate = True else: self.param_separate = False self.slider_group = grid self.update_mainlayout() self.update_prop_table() self.write_text("update sliders") return grid
def gui_init(self): layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) label = QLabel(self.__label, self) layout.addWidget(label, 0, 0, Qt.AlignCenter) self.__edit = QLineEdit(self.__text, self) self.__edit.setFixedWidth(self.input_width) if self.__ipRegex: ipValidator = QRegExpValidator(self.__ipRegex) self.__edit.setValidator(ipValidator) layout.addWidget(self.__edit, 0, 1, Qt.AlignCenter) self.__edit.textChanged.connect(self.__changed__) if self.callback: self.__edit.textEdited.connect(partial(self.callback)) if self.__runner: run_but = QPushButton(self) run_but.setText(self.parent.qapp.tr("Run")) layout.addWidget(run_but, 0, 3, Qt.AlignCenter) run_but.pressed.connect(self.__runner__)
class Forecast: def __init__(self): self.layout = QGridLayout() self.wrapper = QFrame() self.wrapper.setLayout(self.layout) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.icon = QSvgWidget() self.day = QLabel() self.min_temp = QLabel() self.max_temp = QLabel() self.precip = QLabel() self.wind = QLabel() self.layout.addWidget(self.icon, 0, 0, 1, 1) self.layout.addWidget(self.day, 1, 0, 1, 1) self.layout.addWidget(self.min_temp, 1, 1, 1, 1) self.layout.addWidget(self.max_temp, 0, 1, 1, 1) self.layout.addWidget(self.wind, 0, 2, 1, 1) self.layout.addWidget(self.precip, 1, 2, 1, 1) def update(self, values): self.icon.load(values.icon) self.day.setText(values.day) self.min_temp.setText(values.min_temp) self.max_temp.setText(values.max_temp) self.precip.setText(values.precip) self.wind.setText(values.wind)
def _layout( self) -> Tuple[QGridLayout, FileTreeView, FileTagView, ImageView]: layout = QGridLayout() layout.setContentsMargins(5, 5, 5, 5) splitter = QSplitter() layout.addWidget(splitter, 0, 0, 0, 0) left_splitter = QSplitter(Qt.Vertical) splitter.addWidget(left_splitter) # Top left file_tree = FileTreeView(self._on_file_tree_selection_changed) left_splitter.addWidget(file_tree) # Bottom left tagging = FileTagView(self.global_state) left_splitter.addWidget(tagging) # Right image = ImageView() splitter.addWidget(wrap_image(image)) # Initialize equal widths (needs to be set at the end) splitter.setSizes([1000000, 1000000]) return layout, file_tree, tagging, image
class Current: def __init__(self): self.layout = QGridLayout() self.wrapper = QFrame() self.wrapper.setLayout(self.layout) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.time = QLabel() self.icon = QSvgWidget() self.temp = QLabel() self.precip = QLabel() self.wind = QLabel() self.layout.addWidget(self.time, 0, 0, 1, 2) self.layout.addWidget(self.icon, 1, 0, 3, 1) self.layout.addWidget(self.temp, 1, 1, 1, 1) self.layout.addWidget(self.wind, 2, 1, 1, 1) self.layout.addWidget(self.precip, 3, 1, 1, 1) def update(self, values): self.icon.load(values.icon) self.time.setText(values.time) self.temp.setText(values.temp) self.wind.setText(values.wind) self.precip.setText(values.precip)
class Layout(Slots): def __init__(self): super().__init__() def stored_location_layout(self): self.stored_directories_title = QLabel(constants.stored_dir_str) # Combo box and its properties self.stored_dir_dropdown = QComboBox() self.stored_dir_dropdown.addItems(self.get_list_items()) self.stored_dir_dropdown.setCursor(QCursor(Qt.PointingHandCursor)) self.stored_dir_dropdown.setStyleSheet(stored_dir_dropdown_styles) # Layout grid for combo box widget self.stored_dirs_layout = QGridLayout() self.stored_dirs_layout.addWidget(self.stored_directories_title, 0, 0) self.stored_dirs_layout.addWidget(self.stored_dir_dropdown, 0, 1) self.stored_dirs_layout.setColumnStretch(1, 2) self.stored_dirs_layout.setContentsMargins(0, 16, 0, 32) return self.stored_dirs_layout def push_to_group_layout(self): # Create a group self.group_push_to = QGroupBox(constants.push_branch_str) self.group_push_to.setStyleSheet(group_widgets_styles) # Create the layout for the branch widgets self.pushToLayout = QVBoxLayout() self.pushToLayout.setAlignment(Qt.AlignTop) self.pushToLayout.setContentsMargins(16, 24, 16, 24) # Set the layout to the group self.group_push_to.setLayout(self.pushToLayout) # Create the staging button and its properties self.staging_btn = QPushButton(constants.master_to_staging_str) self.staging_btn.clicked.connect( lambda: self.handle_branch_push_to_git(constants.master, constants. staging)) self.staging_btn.setCursor(QCursor(Qt.PointingHandCursor)) self.staging_btn.setStyleSheet(button_styles) # Create the production button and its properties self.prod_btn = QPushButton(constants.staging_to_prod_str) self.prod_btn.setCursor(QCursor(Qt.PointingHandCursor)) self.prod_btn.clicked.connect(lambda: self.handle_branch_push_to_git( constants.staging, constants.production)) self.prod_btn.setStyleSheet(button_styles) self.thread = Thread() self.thread.finished.connect(lambda: self.staging_btn.setEnabled(True)) self.thread.finished.connect(lambda: self.prod_btn.setEnabled(True)) # Add the button widgets to the layout self.pushToLayout.addWidget(self.staging_btn) self.pushToLayout.addWidget(self.prod_btn) return self.group_push_to
def displayWidgets(self): """ Configura os widgets da app """ grid = QGridLayout() titl_lbl = QLabel("To Do List") titl_lbl.setFont(QFont('Arial', 24)) titl_lbl.setAlignment(Qt.AlignCenter) close_btn = QPushButton("Fechar") close_btn.clicked.connect(self.close) pend_lbl = QLabel("Tarefas") pend_lbl.setFont(QFont('Arial', 20)) pend_lbl.setAlignment(Qt.AlignCenter) comp_lbl = QLabel("Compromissos") comp_lbl.setFont(QFont('Arial', 20)) comp_lbl.setAlignment(Qt.AlignCenter) pend_grd = QGridLayout() pend_grd.setContentsMargins(5, 5, 5, 5) pend_grd.addWidget(pend_lbl, 0, 0, 1, 2) for pos in range(1, 15): cbox = QCheckBox() cbox.setChecked(False) ledit = QLineEdit() ledit.setMinimumWidth(200) pend_grd.addWidget(cbox, pos, 0) pend_grd.addWidget(ledit, pos, 1) mat_lbl = QLabel("Manhã") mat_lbl.setFont(QFont('Arial', 16)) mat_tedit = QTextEdit() ves_lbl = QLabel("Tarde") ves_lbl.setFont(QFont('Arial', 16)) ves_tedit = QTextEdit() not_lbl = QLabel("Noite") not_lbl.setFont(QFont('Arial', 16)) not_tedit = QTextEdit() vbox = QVBoxLayout() vbox.setContentsMargins(5, 5, 5, 5) vbox.addWidget(comp_lbl) vbox.addWidget(mat_lbl) vbox.addWidget(mat_tedit) vbox.addWidget(ves_lbl) vbox.addWidget(ves_tedit) vbox.addWidget(not_lbl) vbox.addWidget(not_tedit) grid.addWidget(titl_lbl, 0, 0, 1, 2) grid.addLayout(pend_grd, 1, 0) grid.addLayout(vbox, 1, 1) grid.addWidget(close_btn, 2, 0, 1, 2) self.setLayout(grid)
class PageAllegroMonitored(QWidget): def __init__(self, parent=None, shared_dict=None): QWidget.__init__(self) parent.addWidget(self) self.shared_dict = shared_dict self.parent = parent self.setLayoutDirection(Qt.LeftToRight) self.gridLayout = QGridLayout(self) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.scrollArea = QScrollArea(self) self.scrollArea.setStyleSheet("""QScrollArea{border: none;}""") self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.scrollArea.setSizeAdjustPolicy(QAbstractScrollArea.AdjustIgnored) self.scrollArea.setWidgetResizable(True) self.gridLayout.addWidget(self.scrollArea, 0, 0, 1, 1) self.scrollAreaWidgetContents = QWidget() self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 654, 479)) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.gridLayout_scroll_area = QGridLayout( self.scrollAreaWidgetContents) self.gridLayout_scroll_area.setSpacing(0) self.gridLayout_scroll_area.setContentsMargins(40, 0, 40, -1) self.label_title = QLabel("List of your monitored objects", self.scrollAreaWidgetContents) self.label_title.setStyleSheet(styles.label_title) self.label_title.setAlignment(Qt.AlignCenter) self.gridLayout_scroll_area.addWidget(self.label_title) self.spacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.load_list() def load_list(self): elements = data.read_monitored_elements() for element in elements: e = ElementAllegroMonitored(element['name'], element['link'], element['is_done'], element['price'], element['xpath'], element['time'], element['is_monitoring'], self.scrollAreaWidgetContents, self.shared_dict) self.gridLayout_scroll_area.addWidget(e) self.gridLayout_scroll_area.addItem(self.spacer) def add_to_list(self, name, link, is_done, price, xpath, time, is_monitoring): self.gridLayout_scroll_area.removeItem(self.spacer) e = ElementAllegroMonitored(name, link, is_done, price, xpath, time, is_monitoring) self.gridLayout_scroll_area.addWidget(e) self.gridLayout_scroll_area.addItem(self.spacer)
def initializeUI(self): main_grid = QGridLayout() todo_title = QLabel("Список дел на день") todo_title.setFont(QFont('Arial', 24)) todo_title.setAlignment(Qt.AlignCenter) # create section labels for to do list mustdo_label = QLabel("Надо сделать") mustdo_label.setFont(QFont('Arial', 20)) mustdo_label.setAlignment(Qt.AlignCenter) appts_label = QLabel("Запланированные встречи") appts_label.setFont(QFont('Arial', 20)) appts_label.setAlignment(Qt.AlignCenter) # create must do section mustdo_grid = QGridLayout() mustdo_grid.setContentsMargins(5, 5, 5, 5) mustdo_grid.addWidget(mustdo_label, 0, 0, 1, 2) # create checkboxes and line edit widgets for position in range(1, 15): checkbox = QCheckBox() checkbox.setObjectName(str(position)) linedit = QLineEdit("") linedit.setMinimumWidth(200) mustdo_grid.addWidget(checkbox, position, 0) mustdo_grid.addWidget(linedit, position, 1) self.dictToDo[checkbox] = linedit # create labels for appointments section morning_label = QLabel("Утро") morning_label.setFont(QFont('Arial', 16)) noon_label = QLabel("Обед") noon_label.setFont(QFont('Arial', 16)) evening_label = QLabel("Вечер") evening_label.setFont(QFont('Arial', 16)) # create vertical layout and add widgets appt_v_box = QVBoxLayout() appt_v_box.setContentsMargins(5, 5, 5, 5) evening_entry = QTextEdit() noon_entry = QTextEdit() morning_entry = QTextEdit() appt_v_box.addWidget(appts_label) appt_v_box.addWidget(morning_label) appt_v_box.addWidget(morning_entry) appt_v_box.addWidget(noon_label) appt_v_box.addWidget(noon_entry) appt_v_box.addWidget(evening_label) appt_v_box.addWidget(evening_entry) self.dayMeet = [morning_entry, noon_entry, evening_entry] # add other layouts to main grid layout main_grid.addWidget(todo_title, 0, 0, 1, 2) main_grid.addLayout(mustdo_grid, 1, 0) main_grid.addLayout(appt_v_box, 1, 1) main_grid.addWidget(self.clear_button, 2, 0, 1, 2) self.setLayout(main_grid)
def __init__(self, data: PatientBoneAgeJournal = None): super().__init__(data) self.table = PatientBoneAgeJournalTable(self.data) self.table.record_selected.connect(self.record_selected) grid_layout = QGridLayout() grid_layout.setContentsMargins(0, 0, 0, 0) grid_layout.addWidget(self.table) self.setLayout(grid_layout)
def _set_layout(self): """ Creates this Widget's Layout """ box = QGridLayout() box.setContentsMargins(0, 0, 0, 0) box.addWidget(self.toolbar, 0, 0) box.addWidget(self.out, 1, 0) self.setLayout(box)
def __init__(self, parent, data): super(SegmentsWidget, self).__init__(parent) layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setVerticalSpacing(1) layout.setHorizontalSpacing( UIContext.getScaledWindowSize(16, 16).width()) self.segments = [] for segment in data.segments: if segment.readable or segment.writable or segment.executable: self.segments.append(segment) self.segments.sort(key=lambda segment: segment.start) row = 0 for segment in self.segments: begin = "0x%x" % segment.start end = "0x%x" % segment.end permissions = "" if segment.readable: permissions += "r" else: permissions += "-" if segment.writable: permissions += "w" else: permissions += "-" if segment.executable: permissions += "x" else: permissions += "-" rangeLayout = QHBoxLayout() rangeLayout.setContentsMargins(0, 0, 0, 0) beginLabel = headers.ClickableAddressLabel(begin) dashLabel = QLabel("-") dashLabel.setFont(binaryninjaui.getMonospaceFont(self)) endLabel = headers.ClickableAddressLabel(end) rangeLayout.addWidget(beginLabel) rangeLayout.addWidget(dashLabel) rangeLayout.addWidget(endLabel) layout.addLayout(rangeLayout, row, 0) permissionsLabel = QLabel(permissions) permissionsLabel.setFont(binaryninjaui.getMonospaceFont(self)) layout.addWidget(permissionsLabel, row, 1) row += 1 layout.setColumnStretch(2, 1) self.setLayout(layout)
class Funcoes: def limpa_formulario(self, frm): for i in reversed(range(len(frm.children()))): frm.children()[i].deleteLater() print(frm.layout()) def set_grid_layout_conteudo(self, frame): self.grl_fra_conteudo = QGridLayout(frame) self.grl_fra_conteudo.setSpacing(0) self.grl_fra_conteudo.setObjectName(u"grl_fra_conteudo") self.grl_fra_conteudo.setSizeConstraint(QLayout.SetMinimumSize) self.grl_fra_conteudo.setContentsMargins(0, 0, 0, 0)
def initializeUI(self): main_grid = QGridLayout() todo_title = QLabel("Список дел на день") todo_title.setFont(QFont('Arial', 24)) todo_title.setAlignment(Qt.AlignCenter) # создание меток mustdo_label = QLabel("Надо сделать") mustdo_label.setFont(QFont('Arial', 20)) mustdo_label.setAlignment(Qt.AlignCenter) appts_label = QLabel("Запланированные встречи") appts_label.setFont(QFont('Arial', 20)) appts_label.setAlignment(Qt.AlignCenter) # создание секций mustdo_grid = QGridLayout() mustdo_grid.setContentsMargins(5, 5, 5, 5) mustdo_grid.addWidget(mustdo_label, 0, 0, 1, 2) # создание чекбоксов с полями ввода for position in range(1, 15): checkbox = QCheckBox() checkbox.setObjectName(str(position)) linedit = QLineEdit("") linedit.setMinimumWidth(200) mustdo_grid.addWidget(checkbox, position, 0) mustdo_grid.addWidget(linedit, position, 1) self.dictToDo[checkbox] = linedit # секция встреч morning_label = QLabel("Утро") morning_label.setFont(QFont('Arial', 16)) noon_label = QLabel("Обед") noon_label.setFont(QFont('Arial', 16)) evening_label = QLabel("Вечер") evening_label.setFont(QFont('Arial', 16)) # первичная компоновка appt_v_box = QVBoxLayout() appt_v_box.setContentsMargins(5, 5, 5, 5) evening_entry = QTextEdit() noon_entry = QTextEdit() morning_entry = QTextEdit() appt_v_box.addWidget(appts_label) appt_v_box.addWidget(morning_label) appt_v_box.addWidget(morning_entry) appt_v_box.addWidget(noon_label) appt_v_box.addWidget(noon_entry) appt_v_box.addWidget(evening_label) appt_v_box.addWidget(evening_entry) self.dayMeet = [morning_entry, noon_entry, evening_entry] # завершение компоновки main_grid.addWidget(todo_title, 0, 0, 1, 2) main_grid.addLayout(mustdo_grid, 1, 0) main_grid.addLayout(appt_v_box, 1, 1) self.setLayout(main_grid)
def __init__(self, parent, db_mngr, *db_maps): """Initialize class. Args: parent (SpineDBEditor) db_mngr (SpineDBManager) db_maps (DiffDatabaseMapping): the dbs to select items from """ super().__init__(parent) self.db_mngr = db_mngr self.db_maps = db_maps top_widget = QWidget() top_layout = QHBoxLayout(top_widget) db_maps_group_box = QGroupBox("Databases", top_widget) db_maps_layout = QVBoxLayout(db_maps_group_box) db_maps_layout.setContentsMargins(self._MARGIN, self._MARGIN, self._MARGIN, self._MARGIN) self.db_map_check_boxes = { db_map: QCheckBox(db_map.codename, db_maps_group_box) for db_map in self.db_maps } for check_box in self.db_map_check_boxes.values(): check_box.stateChanged.connect(lambda _: QTimer.singleShot( 0, self._set_item_check_box_enabled)) check_box.setChecked(True) db_maps_layout.addWidget(check_box) items_group_box = QGroupBox("Items", top_widget) items_layout = QGridLayout(items_group_box) items_layout.setContentsMargins(self._MARGIN, self._MARGIN, self._MARGIN, self._MARGIN) self.item_check_boxes = { item_type: QCheckBox(item_type, items_group_box) for item_type in self._ITEM_TYPES } for k, check_box in enumerate(self.item_check_boxes.values()): row = k // self._COLUMN_COUNT column = k % self._COLUMN_COUNT check_box.setChecked(True) items_layout.addWidget(check_box, row, column) top_layout.addWidget(db_maps_group_box) top_layout.addWidget(items_group_box) button_box = QDialogButtonBox(self) button_box.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) button_box.accepted.connect(self.accept) button_box.rejected.connect(self.reject) layout = QVBoxLayout(self) layout.addWidget(top_widget) layout.addWidget(button_box) layout.setContentsMargins(self._MARGIN, self._MARGIN, self._MARGIN, self._MARGIN) self.setAttribute(Qt.WA_DeleteOnClose)
def __set_layout(self): """ Creates this Widget's Layout """ box = QGridLayout() box.setContentsMargins(0, 0, 0, 0) box.addWidget(self.lab_label, 0, 0) box.addWidget(self.labels_view, 1, 0) box.addWidget(self.lab_symbols, 0, 1) box.addWidget(self.symbols_view, 1, 1) self.setLayout(box)
class PageAbout(QWidget): def __init__(self, parent=None): QWidget.__init__(self) parent.addWidget(self) self.gridLayout_about = QGridLayout(self) self.frame_about = QFrame(self) self.frame_about.setEnabled(True) self.frame_about.setStyleSheet(styles.frame_about) self.frame_about.setFrameShape(QFrame.StyledPanel) self.frame_about.setFrameShadow(QFrame.Raised) self.gridLayout_about.addWidget(self.frame_about, 0, 1, 1, 1) self.gridLayout_frame_about = QGridLayout(self.frame_about) self.gridLayout_frame_about.setContentsMargins(-1, 60, -1, -1) self.spacer_about_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_about_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_about_b = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout_frame_about.addItem(self.spacer_about_l, 0, 0, 1, 1) self.gridLayout_frame_about.addItem(self.spacer_about_r, 0, 2, 1, 1) self.gridLayout_frame_about.addItem(self.spacer_about_b, 3, 1, 1, 1) self.label_about_name = QLabel("WebCheck", self.frame_about) self.label_about_name.setStyleSheet(styles.label_about_name) self.label_about_name.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_name, 0, 1, 1, 1) self.label_about_name = QLabel( "Made by Eugene Oros & Michał Piotrowski", self.frame_about) self.label_about_name.setStyleSheet(styles.label_about_made) self.label_about_name.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_name, 1, 1, 1, 1) self.label_about_version = QLabel("Version 1.0.0", self.frame_about) self.label_about_version.setStyleSheet(styles.label_about_version) self.label_about_version.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_version, 2, 0, 1, 3) self.label_about_c = QLabel("\u00a9 All rights reserved", self.frame_about) self.label_about_c.setStyleSheet(styles.label_about_c) self.label_about_c.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_c, 3, 0, 1, 3)
def __init__(self, game: Game) -> None: super().__init__("Intel") self.setProperty("style", "IntelSummary") self.game = game columns = QHBoxLayout() self.setLayout(columns) summary = QGridLayout() summary.setContentsMargins(5, 5, 5, 5) air_superiority = QLabel("Air superiority:") summary.addWidget(air_superiority, 0, 0) self.air_strength = QLabel() summary.addWidget(self.air_strength, 0, 1) front_line = QLabel("Front line:") summary.addWidget(front_line, 1, 0) self.ground_strength = QLabel() summary.addWidget(self.ground_strength, 1, 1) economy = QLabel("Economic strength:") summary.addWidget(economy, 2, 0) self.economic_strength = QLabel() summary.addWidget(self.economic_strength, 2, 1) # some dirty styling to make the labels show up well on the button button_text_style = "background-color: rgba(0,0,0,0%); color: white;" air_superiority.setStyleSheet(button_text_style) front_line.setStyleSheet(button_text_style) economy.setStyleSheet(button_text_style) self.air_strength.setStyleSheet(button_text_style) self.ground_strength.setStyleSheet(button_text_style) self.economic_strength.setStyleSheet(button_text_style) self.details = QPushButton() self.details.setMinimumHeight(50) self.details.setMinimumWidth(210) self.details.setLayout(summary) columns.addWidget(self.details) self.details.clicked.connect(self.open_details_window) self.details.setEnabled(False) self.update_summary() self.details_window: Optional[IntelWindow] = None
def __init__(self, *args, **kwargs): super(VarietyOptionWidget, self).__init__(*args, **kwargs) layout = QVBoxLayout() layout.setContentsMargins(QMargins(1, 1, 1, 1)) opts_layout = QHBoxLayout() opts_layout.setContentsMargins(QMargins(0, 0, 0, 0)) self.add_button = QPushButton("新建品种", self) opts_layout.addWidget(self.add_button) opts_layout.addStretch() layout.addLayout(opts_layout) # 新建品种的widget self.new_variety_widget = QWidget(self) add_layout = QGridLayout() add_layout.setContentsMargins(QMargins(100, 50, 100, 50)) add_layout.addWidget(QLabel("所属类别:", self), 0, 0) self.belong_group = QComboBox(self) add_layout.addWidget(self.belong_group, 0, 1) add_layout.addWidget(QLabel("属交易所", self), 1, 0) self.belong_exchange = QComboBox(self) add_layout.addWidget(self.belong_exchange, 1, 1) add_layout.addWidget(QLabel("中文名称", self), 2, 0) self.zh_name = QLineEdit(self) add_layout.addWidget(self.zh_name, 2, 1) add_layout.addWidget(QLabel("交易代码", self), 3, 0) self.en_name = QLineEdit(self) add_layout.addWidget(self.en_name, 3, 1) self.commit_new_button = QPushButton("确定提交", self) add_layout.addWidget(self.commit_new_button, 4, 0, 1, 2) self.new_variety_widget.setLayout(add_layout) layout.addWidget(self.new_variety_widget) self.new_variety_widget.hide() # 隐藏新建填写信息的界面 self.variety_table = QTableWidget(self) layout.addWidget(self.variety_table) self.setLayout(layout)
class Editor(QMainWindow): def __init__(self, parent, obj): super(Editor, self).__init__() self.parent = parent self.obj = obj self.centralWidget = QWidget() self.grid = QGridLayout(self.centralWidget) self.script = self.menuBar().addAction("Sauvegarder", self.save) self.doc = self.menuBar().addAction("Documentation", self.get_doc) self.editor = EditorWidget(self) self.editor.setPlainText(self.obj.script) self.grid.addWidget(self.editor, 0, 0) self.grid.setContentsMargins(0, 0, 0, 0) self.grid.setSpacing(0) self.setCentralWidget(self.centralWidget) self.setWindowTitle("PyEngine - Script - " + self.obj.name) def get_doc(self): if self.obj.type_ in ["World", "Window"]: url = "https://pyengine-doc.readthedocs.io/fr/latest/API/" + self.obj.type_ + ".html" elif self.obj.type_ in ["Entity", "Tilemap"]: url = "https://pyengine-doc.readthedocs.io/fr/latest/API/Entities/" + self.obj.type_ + ".html" elif "Component" in self.obj.type_: url = "https://pyengine-doc.readthedocs.io/fr/latest/API/Components/" + self.obj.type_ + ".html" else: raise TypeError("Unknown documentation for type : " + self.obj.type_) webbrowser.open(url) def save(self): self.obj.script = self.editor.toPlainText() def closeEvent(self, event) -> None: if self.obj.script != self.editor.toPlainText(): if QMessageBox.question( self, "PyEngine - Editeur", "Voulez vous enregistrer le script ?") == QMessageBox.Yes: self.save() event.accept()
class App(QApplication): def __init__(self, sys_argv): super().__init__(sys_argv) # Show main window self.view = QMainWindow() self.centralWidget = QWidget(self.view) self.gridLayout = QGridLayout(self.centralWidget) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setSpacing(0) self.video_item = QVideoWidget() self.gridLayout.addWidget(self.video_item) self.view.setCentralWidget(self.centralWidget) self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface) self.grabber = VideoFrameGrabber(self.video_item, self) self.mediaPlayer.setVideoOutput(self.grabber) self.grabber.frameAvailable.connect(self.process_frame) self.mediaPlayer.durationChanged.connect(self.update_duration) self.mediaPlayer.positionChanged.connect(self.update_slider_position) local = QUrl.fromLocalFile('D:\\SampleData\\albamonSample.mp4') media = QMediaContent(local) self.mediaPlayer.setMedia(media) self.mediaPlayer.play() self.view.show() def process_frame(self, image): # Save image here image.save('D:\\SampleData/temp/{}.jpg'.format(str(uuid.uuid4()))) def update_duration(self): pass def update_slider_position(self): pass
def __set_layout(self): """ Initializes the layout of this widget """ layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) # Widgets layout.addWidget(self.view_students, 0, 1) layout.addWidget(self.v_canvas, 1, 0, 1, 3) layout.addWidget(self.view_teacher, 2, 0, 1, 3) # Alignments layout.setAlignment(self.view_students, Qt.AlignCenter) layout.setAlignment(self.v_canvas, Qt.AlignCenter) layout.setAlignment(self.view_teacher, Qt.AlignCenter) self.setLayout(layout)
def error_modal(self, window_title, msg_str): modal = QDialog(self) modal.setWindowTitle(window_title) msg = QLabel(msg_str) msg.setWordWrap(True) msg.setStyleSheet("""margin-bottom: 1em;""") msg.setAlignment(Qt.AlignCenter) buttonBox = QDialogButtonBox(QDialogButtonBox.Close) buttonBox.rejected.connect(modal.reject) buttonBox.setCenterButtons(True) layout = QGridLayout() layout.addWidget(msg, 0, 0) layout.addWidget(buttonBox, 1, 0) layout.setContentsMargins(16, 16, 16, 16) modal.setLayout(layout) modal.exec_()
def __init__(self, data: ColorTransferFunction = None): super().__init__(data) self.chart = ColorTransferFunctionChart(data) # self.chart.legend().hide() self.chart_rect_f = QRectF() self.axis_x = QtCharts.QValueAxis() # self.axis_x.setLabelFormat('%d') self.axis_x.setLabelFormat('%.1f') self.axis_x.setTitleText('Intensity') self.chart.addAxis(self.axis_x, Qt.AlignBottom) self.axis_y = QtCharts.QValueAxis() # self.axis_y.setTickCount(10) self.axis_y.setLabelFormat('%.2f') # self.axis_y.setTitleText('Magnitude') self.chart.addAxis(self.axis_y, Qt.AlignLeft) self.axis_x.setRange(0, self.data.points[-1].x) self.axis_y.setRange(0, 1) # Add an empty series, else |chart.mapToPosition| will no work self.series = self.add_series() self.chart_view = QtCharts.QChartView(self.chart) # self.chart_view.setRubberBand(QtCharts.QChartView.RectangleRubberBand) self.chart_view.setRenderHint(QPainter.Antialiasing) self.scene = self.chart_view.scene() self._interval_views = SortedList() self._point_views = [] if self.data is not None: self._add_interval_views() self._add_point_views() self.data.point_added.connect(self._on_point_added) grid_layout = QGridLayout() grid_layout.setContentsMargins(0, 0, 0, 0) grid_layout.addWidget(self.chart_view) self.setLayout(grid_layout)
def __init__(self, parent, header): super(HeaderWidget, self).__init__(parent) layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setVerticalSpacing(1) row = 0 col = 0 for field in header.fields: name = field[0] value = field[1] fieldType = "" if len(field) > 2: fieldType = field[2] layout.addWidget(QLabel(name + ": "), row, col * 3) if isinstance(value, list): for i in range(0, len(value)): if fieldType == "ptr": label = ClickableAddressLabel(value[i]) elif fieldType == "code": label = ClickableCodeLabel(value[i]) else: label = QLabel(value[i]) label.setFont(binaryninjaui.getMonospaceFont(self)) layout.addWidget(label, row, col * 3 + 1) row += 1 else: if fieldType == "ptr": label = ClickableAddressLabel(value) elif fieldType == "code": label = ClickableCodeLabel(value) else: label = QLabel(value) label.setFont(binaryninjaui.getMonospaceFont(self)) layout.addWidget(label, row, col * 3 + 1) row += 1 if (header.columns > 1) and (row >= header.rows_per_column) and ((col + 1) < header.columns): row = 0 col += 1 for col in range(1, header.columns): layout.setColumnMinimumWidth(col * 3 - 1, UIContext.getScaledWindowSize(20, 20).width()) layout.setColumnStretch(header.columns * 3 - 1, 1) self.setLayout(layout)