def __init__(self, valve: Valve): super().__init__() AppGlobals.Instance().onChipModified.connect(self.CheckForValve) self._valve = valve self.valveToggleButton = QToolButton() self.valveNumberLabel = QLabel("Number") self.valveNumberDial = QSpinBox() self.valveNumberDial.setMinimum(0) self.valveNumberDial.setValue(self._valve.solenoidNumber) self.valveNumberDial.setMaximum(9999) self.valveNumberDial.valueChanged.connect(self.UpdateValve) self.valveNameLabel = QLabel("Name") self.valveNameField = QLineEdit(self._valve.name) self.valveNameField.textChanged.connect(self.UpdateValve) mainLayout = QVBoxLayout() mainLayout.addWidget(self.valveToggleButton, alignment=Qt.AlignCenter) layout = QGridLayout() layout.addWidget(self.valveNameLabel, 0, 0) layout.addWidget(self.valveNameField, 0, 1) layout.addWidget(self.valveNumberLabel, 1, 0) layout.addWidget(self.valveNumberDial, 1, 1) mainLayout.addLayout(layout) self.containerWidget.setLayout(mainLayout) self.valveToggleButton.clicked.connect(self.Toggle) self.Update() self.Move(QPointF())
def __init__(self, result, parent=None): # An item of ResultsList # result: (dict) represents details (playlist or song search) QToolButton.__init__(self) self.setParent(parent) self.result = result # Button formatting self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.setFixedHeight(70) self.setAutoRaise(True) # TODO: change with global themes self.setStyleSheet( "QToolButton:pressed { background-color: rgba(255, 255, 255, 0.1)} QToolButton { background-color: rgba(255, 255, 255, 0.05); border: 1px solid white}" ) # Set layout self.layout = QHBoxLayout() self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) # Depending on result type, add action when the item is clicked if result["type"] == "songs": self.formatTitle() self.clicked.connect(self.clickedSong) elif result["type"] == "playlists": self.formatPlaylist() self.clicked.connect(self.clickedPlaylist) self.setLayout(self.layout)
def __init__(self, parent=None): QToolButton.__init__(self) self.setParent(parent)\ # Set the layout of the button layout = QGridLayout() # Button formatting self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.setAutoRaise(True) # Icon part of the button self.icon = QLabel() self.icon.setAlignment(Qt.AlignCenter) self.icon.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.iconPixmap = QPixmap() # Text part of the button # Initialise label self.text = QLabel() self.text.setAlignment(Qt.AlignBottom) # TODO: Change colour with universal theme self.text.setStyleSheet("color: white") # Add font styling font = QFont() font.setPixelSize(15) self.text.setFont(font) # Add components to the layer layout.addWidget(self.icon, 0, 0, 3, 3) layout.addWidget(self.text, 2, 0, 1, 3) self.setLayout(layout)
def __init__(self): super().__init__() MANGA_ITEMS.itemClicked.connect(self.onSelectedManga) self.deletedManga.connect(self.onDeletedManga) self.selected = None self.summaries = {} for method_name, icon_path in self.BUTTONS: method = getattr(self, method_name) tooltip = f"{method_name.title()} a manga..." action = QAction() action.setToolTip(tooltip) action.setIcon(utils.icon(icon_path)) action.triggered.connect(method) button = QToolButton() button.setDefaultAction(action) self.addWidget(button) # spacer spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.addWidget(spacer) # text below the manga preview self.summary = QLabel() self.addWidget(self.summary) self.show()
def setup_tool_button_menu(self, tool_button: QtWidgets.QToolButton): menu = QtWidgets.QMenu(tool_button) self.create_backend_entries(menu) menu.addSeparator() self.create_upload_nintendont_action(menu) tool_button.setText("Configure backend") tool_button.setMenu(menu) self.refresh_backend()
def initButton(self): # Create the search button self.button = QToolButton() self.button.setFixedSize(100, 50) self.button.setIcon(QIcon("icons/search-1.svg")) self.button.setIconSize(QSize(30, 30)) self.button.setAutoRaise(True) self.button.setStyleSheet("QToolButton:pressed { background-color: rgba(255, 255, 255, 0.1)}") # TODO: Connect button clicked action to search action self.button.clicked.connect(self.buttonTitle)
def __init__(self, result, parent=None): QToolButton.__init__(self) self.setParent(parent) self.result = result self.setContentsMargins(0, 0, 0, 0) # Button formatting self.setFixedSize(200, 240) self.setAutoRaise(True) # TODO: change with global themes self.setStyleSheet( "QToolButton:pressed { background-color: rgba(255, 255, 255, 0.1)} QToolButton { background-color: rgba(255, 255, 255, 0.05); border: 1px solid white; color: white}" ) # Set layout settings self.layout = QGridLayout() self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) if result["type"] == "artists": # Artist image self.formattedImage(self.window().artistPath + result["artist_path"]) self.formattedLabel(result["artist_name"]) # Favourite button self.favouriteButton = QToolButton() self.favouriteButton.setStyleSheet( "QToolButton:pressed { background-color: rgb(31, 41, 75)} QToolButton { background-color: rgb(25, 33, 60);}" ) # Toggle Favourite Icon depending on DB if self.result["favourited"] == 0: self.favouriteButton.isFavourited = False self.favouriteButton.setIcon(QIcon("icons/star.svg")) else: self.favouriteButton.isFavourited = True self.favouriteButton.setIcon( QIcon("icons/star-yellow.svg")) self.favouriteButton.setIconSize(QSize(30, 30)) self.favouriteButton.setFixedSize(70, 70) self.favouriteButton.clicked.connect(self.clickedFavourite) self.layout.addWidget(self.favouriteButton, 0, 0, Qt.AlignRight | Qt.AlignTop) self.clicked.connect(self.clickedArtist) elif result["type"] == "languages": # Language image self.formattedImage(self.window().languagePath + result["language_path"]) self.formattedLabel(result["language_name"]) self.clicked.connect(self.clickedLanguage) self.setLayout(self.layout)
def __init__(self, action_handler: ActionHandler): QToolBar.__init__(self) self.action_handler = action_handler self.patient_dict_container = PatientDictContainer() self.setCursor(QCursor(Qt.PointingHandCursor)) self.setMovable(False) self.setFloatable(False) self.setContextMenuPolicy(Qt.PreventContextMenu) # Drop-down list for Windowing button on toolbar self.button_windowing = QToolButton() self.button_windowing.setMenu(self.action_handler.menu_windowing) self.button_windowing.setPopupMode(QToolButton.InstantPopup) self.button_windowing.setIcon(self.action_handler.icon_windowing) # Drop-down list for Export button on toolbar self.button_export = QToolButton() self.button_export.setMenu(self.action_handler.menu_export) self.button_export.setPopupMode(QToolButton.InstantPopup) self.button_export.setIcon(self.action_handler.icon_export) # Spacer for the toolbar spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) spacer.setFocusPolicy(Qt.NoFocus) # Add actions to toolbar self.addAction(self.action_handler.action_open) self.addSeparator() self.addAction(self.action_handler.action_zoom_out) self.addAction(self.action_handler.action_zoom_in) self.addSeparator() self.addWidget(self.button_windowing) self.addSeparator() self.addAction(self.action_handler.action_transect) self.addSeparator() self.addAction(self.action_handler.action_one_view) self.addAction(self.action_handler.action_four_views) self.addAction(self.action_handler.action_show_cut_lines) self.addSeparator() self.addAction(self.action_handler.action_image_fusion) self.addSeparator() self.addAction(self.action_handler.action_add_ons) self.addWidget(spacer) self.addWidget(self.button_export) self.addAction(self.action_handler.action_save_as_anonymous) if self.patient_dict_container.has_modality('rtss'): self.addAction(self.action_handler.action_save_structure)
def __init__(self, device: RigDevice): super().__init__() self.device = device self._nameLabel = QLabel(device.serialNumber) self._statusLabel = QLabel("") self._startNumberDial = QSpinBox() self._startNumberDial.setMinimum(0) self._startNumberDial.setMaximum(9999) self._startNumberDial.setValue(device.startNumber) self._startNumberDial.valueChanged.connect(self.SetStartNumber) self._enableToggle = QToolButton() self._enableToggle.clicked.connect(self.ToggleEnable) self._enableToggle.setText("Disable") self._layout = QHBoxLayout() self.setLayout(self._layout) self._layout.addWidget(self._nameLabel, stretch=1) self._layout.addWidget(self._statusLabel, stretch=1) self._layout.addWidget(self._enableToggle) self._layout.addWidget(self._startNumberDial) self._layout.addStretch(1) solenoidLabelLayout = QVBoxLayout() solenoidLabelLayout.addWidget(QLabel("State"), alignment=Qt.AlignRight) solenoidLabelLayout.addWidget(QLabel("Invert"), alignment=Qt.AlignRight) self._layout.addLayout(solenoidLabelLayout) self._layout.addSpacing(5) self._solenoidButtons: List[SolenoidButton] = [] for solenoidNumber in range(24): newButton = SolenoidButton( solenoidNumber, device.solenoidPolarities[solenoidNumber]) newButton.solenoidClicked.connect( lambda s=newButton: self.ToggleSolenoid(s)) newButton.polarityClicked.connect( lambda s=newButton: self.TogglePolarity(s)) self._solenoidButtons.append(newButton) self._layout.addWidget(newButton, stretch=0) self.Update()
def formatTitle(self): # Format the title for the ResultsList # Add space to the beginning of the ResultsListItem labelQueue = self.formattedLabel(QLabel("", self)) labelQueue.setFixedWidth(70) labelQueue.setAlignment(Qt.AlignCenter) self.layout.addWidget(labelQueue) # Artist name labelArtist = self.formattedLabel( QLabel(self.result["artist_name"])) labelArtist.setFixedWidth(300) self.layout.addWidget(labelArtist) # Song title labelTitle = self.formattedLabel( QLabel(self.result["song_title"])) self.layout.addWidget(labelTitle) # Add buttons for favourites and playlists # Favourite button self.favouriteButton = QToolButton() # Toggle Favourite Icon depending on DB if self.result["favourited"] == 0: self.favouriteButton.isFavourited = False self.favouriteButton.setIcon(QIcon("icons/star.svg")) else: self.favouriteButton.isFavourited = True self.favouriteButton.setIcon( QIcon("icons/star-yellow.svg")) self.favouriteButton.setIconSize(QSize(30, 30)) self.favouriteButton.setFixedSize(70, 70) self.favouriteButton.clicked.connect(self.clickedFavourite) self.layout.addWidget(self.favouriteButton) # Playlist button playlistButton = QToolButton() playlistButton.setIcon(QIcon("icons/music-player-2.svg")) playlistButton.setIconSize(QSize(30, 30)) playlistButton.setFixedSize(70, 70) playlistButton.clicked.connect(self.addToPlaylist) self.layout.addWidget(playlistButton)
def __init__(self, parameter: Parameter, instance: ProgramInstance, withVisToggle=False): super().__init__() layout = QHBoxLayout() self.setLayout(layout) self.parameter = parameter self._programInstance = instance self._parameterName = QLabel() self.visibilityToggle = QToolButton() self.visibilityToggle.setCheckable(True) self.visibilityToggle.clicked.connect(self.UpdateParameterValue) if self.parameter.dataType is DataType.INTEGER: self._valueField = QSpinBox() self._valueField.valueChanged.connect(self.UpdateParameterValue) elif self.parameter.dataType is DataType.FLOAT: self._valueField = QDoubleSpinBox() self._valueField.valueChanged.connect(self.UpdateParameterValue) elif self.parameter.dataType is DataType.BOOLEAN: self._valueField = QComboBox() self._valueField.addItem("True", True) self._valueField.addItem("False", False) self._valueField.currentIndexChanged.connect( self.UpdateParameterValue) elif self.parameter.dataType is DataType.STRING: self._valueField = QLineEdit() self._valueField.textChanged.connect(self.UpdateParameterValue) elif self.parameter.dataType is not DataType.OTHER: self._valueField = ChipDataSelection(self.parameter.dataType) self._valueField.currentIndexChanged.connect( self.UpdateParameterValue) if self.parameter.dataType is not DataType.OTHER: layout.addWidget(self.visibilityToggle) layout.addWidget(self._parameterName) layout.addWidget(self._valueField) self.UpdateFields()
def __init__(self, title: str, initially_folded: bool = True, parent: QWidget = None): super().__init__(parent) self._folded = initially_folded self._toggleButton = QToolButton(self) self._toggleButton.setStyleSheet("QToolButton { height: 20px; }") font = self._toggleButton.font() font.setBold(True) font.setPixelSize(13) self._toggleButton.setFont(font) self._toggleButton.setMaximumHeight(20) self._toggleButton.setToolButtonStyle( Qt.ToolButtonStyle.ToolButtonTextBesideIcon) self._toggleButton.setArrowType(Qt.ArrowType.RightArrow) self._toggleButton.setText(title) self._toggleButton.setCheckable(True) self._toggleButton.setChecked(False) self._toggleButton.clicked.connect(self._on_click) self._headerLine = QFrame(self) self._headerLine.setFrameShape(QFrame.HLine) self._headerLine.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum) self._contentArea = QFrame(self) self._contentArea.setObjectName("foldable_contentArea") self._contentArea.setStyleSheet( "#foldable_contentArea { border: none; }") self._contentArea.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) self._mainLayout = QGridLayout(self) self._mainLayout.setVerticalSpacing(0) self._mainLayout.setContentsMargins(0, 0, 0, 0) self._mainLayout.addWidget(self._toggleButton, 0, 0, 1, 1, Qt.AlignLeft) self._mainLayout.addWidget(self._headerLine, 0, 1, 1, 1) self._mainLayout.addWidget(self._contentArea, 1, 0, 1, 2)
class FindToolBar(QToolBar): find = QtCore.Signal(str, QWebEnginePage.FindFlags) def __init__(self): super(FindToolBar, self).__init__() self._line_edit = QLineEdit() self._line_edit.setClearButtonEnabled(True) self._line_edit.setPlaceholderText("Find...") self._line_edit.setMaximumWidth(300) self._line_edit.returnPressed.connect(self._find_next) self.addWidget(self._line_edit) self._previous_button = QToolButton() style_icons = ':/qt-project.org/styles/commonstyle/images/' self._previous_button.setIcon(QIcon(style_icons + 'up-32.png')) self._previous_button.clicked.connect(self._find_previous) self.addWidget(self._previous_button) self._next_button = QToolButton() self._next_button.setIcon(QIcon(style_icons + 'down-32.png')) self._next_button.clicked.connect(self._find_next) self.addWidget(self._next_button) self._case_sensitive_checkbox = QCheckBox('Case Sensitive') self.addWidget(self._case_sensitive_checkbox) self._hideButton = QToolButton() self._hideButton.setShortcut(QKeySequence(Qt.Key_Escape)) self._hideButton.setIcon(QIcon(style_icons + 'closedock-16.png')) self._hideButton.clicked.connect(self.hide) self.addWidget(self._hideButton) def focus_find(self): self._line_edit.setFocus() def _emit_find(self, backward): needle = self._line_edit.text().strip() if needle: flags = QWebEnginePage.FindFlags() if self._case_sensitive_checkbox.isChecked(): flags |= QWebEnginePage.FindCaseSensitively if backward: flags |= QWebEnginePage.FindBackward self.find.emit(needle, flags) def _find_next(self): self._emit_find(False) def _find_previous(self): self._emit_find(True)
def __init__(self, song, parent=None): QToolButton.__init__(self) self.setParent(parent) self.song = song # Button formatting self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.setFixedHeight(70) self.setAutoRaise(True) # TODO: change with global themes self.setStyleSheet( "QToolButton:pressed { background-color: rgba(255, 255, 255, 0.1)} QToolButton { background-color: rgba(255, 255, 255, 0.05); border: 1px solid white}" ) # Set layout self.layout = QHBoxLayout() self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) self.createItem() self.setLayout(self.layout)
def __init__(self): super(FindToolBar, self).__init__() self._line_edit = QLineEdit() self._line_edit.setClearButtonEnabled(True) self._line_edit.setPlaceholderText("Find...") self._line_edit.setMaximumWidth(300) self._line_edit.returnPressed.connect(self._find_next) self.addWidget(self._line_edit) self._previous_button = QToolButton() style_icons = ':/qt-project.org/styles/commonstyle/images/' self._previous_button.setIcon(QIcon(style_icons + 'up-32.png')) self._previous_button.clicked.connect(self._find_previous) self.addWidget(self._previous_button) self._next_button = QToolButton() self._next_button.setIcon(QIcon(style_icons + 'down-32.png')) self._next_button.clicked.connect(self._find_next) self.addWidget(self._next_button) self._case_sensitive_checkbox = QCheckBox('Case Sensitive') self.addWidget(self._case_sensitive_checkbox) self._hideButton = QToolButton() self._hideButton.setShortcut(QKeySequence(Qt.Key_Escape)) self._hideButton.setIcon(QIcon(style_icons + 'closedock-16.png')) self._hideButton.clicked.connect(self.hide) self.addWidget(self._hideButton)
def addChapter(self, row, chapter): if self.downloader.downloaded(chapter): icon = utils.icon("eye") else: icon = utils.icon("download") button = QToolButton() button.setStyleSheet("border: none;") button.setIcon(icon) button.clicked.connect(functools.partial(self.onClicked, chapter)) self.buttons[chapter.id] = button self.setCellWidget(row, 0, button) volume = QLabel(chapter.volume or "(empty)") volume.setAlignment(Qt.AlignCenter) self.setCellWidget(row, 1, volume) id = QLabel(chapter.id) id.setAlignment(Qt.AlignCenter) self.setCellWidget(row, 2, id) title = QLabel( f'<a href="{chapter.url}">{chapter.title or "(empty)"}</a>') title.setOpenExternalLinks(True) self.setCellWidget(row, 3, title)
def __init__(self, parent=None): QWidget.__init__(self) self.setParent(parent) # Set the colour of the overlay self.setStyleSheet("QWidget { background-color: rgba(255, 255, 255, 0.05)}") # Set OverlayBottom heights # TODO: Change heights with increasing resolution self.setFixedHeight(100) # Create layout with margins/spacings layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) # Initialise buttons buttons = [] args = ["home", "user", "windows", "back", "play-pause", "next"] for i in args: button = QToolButton() button.setIcon(QIcon("icons/{}.svg".format(i))) button.setAutoRaise(True) button.setStyleSheet("QToolButton:pressed { background-color: rgba(255, 255, 255, 0.1)}") buttons.append(button) # TODO: Solve this. Lambda functions cannot be used in loops. This is a stupid workaround buttons[0].clicked.connect(lambda: self.buttonAction(args[0])) buttons[1].clicked.connect(lambda: self.buttonAction(args[1])) buttons[2].clicked.connect(lambda: self.buttonAction(args[2])) buttons[3].clicked.connect(lambda: self.buttonAction(args[3])) buttons[4].clicked.connect(lambda: self.buttonAction(args[4])) buttons[5].clicked.connect(lambda: self.buttonAction(args[5])) # Add blank widget to start and end to group and center buttons (pt1) layout.addWidget(QWidget()) # Set IconSize, widths, and SizePolicy of each button. Then proceed to add to layout for x in buttons: x.setIconSize(QSize(35, 35)) # TODO: Scale with resize x.setFixedWidth(150) x.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) layout.addWidget(x) # Add blank widget to start and end to group and center buttons (pt2) layout.addWidget(QWidget()) self.setLayout(layout)
def __init__(self, number, polarity): super().__init__() layout = QVBoxLayout() self.setLayout(layout) self._solenoidButton = QToolButton() self._solenoidButton.setCheckable(True) self._solenoidButton.clicked.connect(self.solenoidClicked.emit) self._polarityButton = QToolButton() self._polarityButton.clicked.connect(self.polarityClicked.emit) layout.addWidget(self._solenoidButton) layout.addWidget(self._polarityButton) self.Update(number, polarity) timer = QTimer(self) timer.timeout.connect(self.UpdateValveState) timer.start(30) self._number = number
class SolenoidButton(QWidget): solenoidClicked = Signal() polarityClicked = Signal() def __init__(self, number, polarity): super().__init__() layout = QVBoxLayout() self.setLayout(layout) self._solenoidButton = QToolButton() self._solenoidButton.setCheckable(True) self._solenoidButton.clicked.connect(self.solenoidClicked.emit) self._polarityButton = QToolButton() self._polarityButton.clicked.connect(self.polarityClicked.emit) layout.addWidget(self._solenoidButton) layout.addWidget(self._polarityButton) self.Update(number, polarity) timer = QTimer(self) timer.timeout.connect(self.UpdateValveState) timer.start(30) self._number = number def Update(self, number: int, polarity: bool): self._number = number self._solenoidButton.setText(str(number)) self._polarityButton.setText({True: "+", False: "-"}[polarity]) self._polarityButton.setChecked(polarity) def UpdateValveState(self): self._solenoidButton.setChecked(AppGlobals.Rig().GetSolenoidState( self._number))
def formatPlaylist(self): # Add space to beginning of LisItem labelQueue = self.formattedLabel(QLabel("", self)) labelQueue.setFixedWidth(70) labelQueue.setAlignment(Qt.AlignCenter) self.layout.addWidget(labelQueue) # Playlist name labelPlaylist = self.formattedLabel( QLabel(self.result["playlist_name"])) self.layout.addWidget(labelPlaylist) # Remove playlist button btnRemove = QToolButton() btnRemove.setText("X") btnRemove.setFixedSize(70, 70) btnRemove.setStyleSheet("color: white") btnRemove.clicked.connect(self.removePlaylist) self.layout.addWidget(btnRemove)
def __init__(self): super().__init__() self.viewer = ChipSceneViewer() actionsLayout = QHBoxLayout() self._actionsWidget = QWidget(self.viewer) self._actionsWidget.setLayout(actionsLayout) self._lockButton = QToolButton() self._lockButton.setText("Done") self._lockButton.clicked.connect(lambda: self.SetEditing(False)) self._editButton = QToolButton() self._editButton.setText("Edit") self._editButton.clicked.connect(lambda: self.SetEditing(True)) self._plusButton = QToolButton() self._plusButton.setText("+") self._plusButton.setPopupMode(QToolButton.InstantPopup) actionsLayout.addWidget(self._plusButton) actionsLayout.addWidget(self._lockButton) actionsLayout.addWidget(self._editButton) menu = QMenu(self._plusButton) menu.addAction("Valve").triggered.connect(self.AddValve) menu.addAction("Program Preset...").triggered.connect( self.SelectProgramPreset) menu.addAction("Image...").triggered.connect(self.BrowseForImage) self._plusButton.setMenu(menu) layout = QHBoxLayout() layout.addWidget(self.viewer) self.setLayout(layout) self._mode = Mode.VIEWING AppGlobals.Instance().onChipOpened.connect(self.LoadChip)
def setupUi(self): # create title bar, content self.vboxWindow = QVBoxLayout(self) self.vboxWindow.setContentsMargins(0, 0, 0, 0) self.windowFrame = QWidget(self) self.windowFrame.setObjectName('windowFrame') self.vboxFrame = QVBoxLayout(self.windowFrame) self.vboxFrame.setContentsMargins(0, 0, 0, 0) self.titleBar = WindowDragger(self, self.windowFrame) self.titleBar.setObjectName('titleBar') self.titleBar.setSizePolicy( QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)) self.hboxTitle = QHBoxLayout(self.titleBar) self.hboxTitle.setContentsMargins(0, 0, 0, 0) self.hboxTitle.setSpacing(0) self.lblTitle = QLabel('Title') self.lblTitle.setObjectName('lblTitle') self.lblTitle.setAlignment(Qt.AlignCenter) spButtons = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.btnMinimize = QToolButton(self.titleBar) self.btnMinimize.setObjectName('btnMinimize') self.btnMinimize.setSizePolicy(spButtons) self.btnRestore = QToolButton(self.titleBar) self.btnRestore.setObjectName('btnRestore') self.btnRestore.setSizePolicy(spButtons) self.btnMaximize = QToolButton(self.titleBar) self.btnMaximize.setObjectName('btnMaximize') self.btnMaximize.setSizePolicy(spButtons) self.btnClose = QToolButton(self.titleBar) self.btnClose.setObjectName('btnClose') self.btnClose.setSizePolicy(spButtons) self.vboxFrame.addWidget(self.titleBar) self.windowContent = QWidget(self.windowFrame) self.vboxFrame.addWidget(self.windowContent) self.vboxWindow.addWidget(self.windowFrame) if PLATFORM == "Darwin": self.hboxTitle.addWidget(self.btnClose) self.hboxTitle.addWidget(self.btnMinimize) self.hboxTitle.addWidget(self.btnRestore) self.hboxTitle.addWidget(self.btnMaximize) self.hboxTitle.addWidget(self.lblTitle) else: self.hboxTitle.addWidget(self.lblTitle) self.hboxTitle.addWidget(self.btnMinimize) self.hboxTitle.addWidget(self.btnRestore) self.hboxTitle.addWidget(self.btnMaximize) self.hboxTitle.addWidget(self.btnClose) # set window flags self.setWindowFlags(Qt.Window | Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint) if QT_VERSION >= (5, ): self.setAttribute(Qt.WA_TranslucentBackground) # set stylesheet with open(_FL_STYLESHEET) as stylesheet: self.setStyleSheet(stylesheet.read()) # automatically connect slots QMetaObject.connectSlotsByName(self)
class ModernWindow(QWidget): """ Modern window. Args: w (QWidget): Main widget. parent (QWidget, optional): Parent widget. """ def __init__(self, w, parent=None): QWidget.__init__(self, parent) self._w = w self.setupUi() contentLayout = QHBoxLayout() contentLayout.setContentsMargins(0, 0, 0, 0) contentLayout.addWidget(w) self.windowContent.setLayout(contentLayout) self.setWindowTitle(w.windowTitle()) self.setGeometry(w.geometry()) # Adding attribute to clean up the parent window when the child is closed self._w.setAttribute(Qt.WA_DeleteOnClose, True) self._w.destroyed.connect(self.__child_was_closed) def setupUi(self): # create title bar, content self.vboxWindow = QVBoxLayout(self) self.vboxWindow.setContentsMargins(0, 0, 0, 0) self.windowFrame = QWidget(self) self.windowFrame.setObjectName('windowFrame') self.vboxFrame = QVBoxLayout(self.windowFrame) self.vboxFrame.setContentsMargins(0, 0, 0, 0) self.titleBar = WindowDragger(self, self.windowFrame) self.titleBar.setObjectName('titleBar') self.titleBar.setSizePolicy( QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)) self.hboxTitle = QHBoxLayout(self.titleBar) self.hboxTitle.setContentsMargins(0, 0, 0, 0) self.hboxTitle.setSpacing(0) self.lblTitle = QLabel('Title') self.lblTitle.setObjectName('lblTitle') self.lblTitle.setAlignment(Qt.AlignCenter) spButtons = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.btnMinimize = QToolButton(self.titleBar) self.btnMinimize.setObjectName('btnMinimize') self.btnMinimize.setSizePolicy(spButtons) self.btnRestore = QToolButton(self.titleBar) self.btnRestore.setObjectName('btnRestore') self.btnRestore.setSizePolicy(spButtons) self.btnMaximize = QToolButton(self.titleBar) self.btnMaximize.setObjectName('btnMaximize') self.btnMaximize.setSizePolicy(spButtons) self.btnClose = QToolButton(self.titleBar) self.btnClose.setObjectName('btnClose') self.btnClose.setSizePolicy(spButtons) self.vboxFrame.addWidget(self.titleBar) self.windowContent = QWidget(self.windowFrame) self.vboxFrame.addWidget(self.windowContent) self.vboxWindow.addWidget(self.windowFrame) if PLATFORM == "Darwin": self.hboxTitle.addWidget(self.btnClose) self.hboxTitle.addWidget(self.btnMinimize) self.hboxTitle.addWidget(self.btnRestore) self.hboxTitle.addWidget(self.btnMaximize) self.hboxTitle.addWidget(self.lblTitle) else: self.hboxTitle.addWidget(self.lblTitle) self.hboxTitle.addWidget(self.btnMinimize) self.hboxTitle.addWidget(self.btnRestore) self.hboxTitle.addWidget(self.btnMaximize) self.hboxTitle.addWidget(self.btnClose) # set window flags self.setWindowFlags(Qt.Window | Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint) if QT_VERSION >= (5, ): self.setAttribute(Qt.WA_TranslucentBackground) # set stylesheet with open(_FL_STYLESHEET) as stylesheet: self.setStyleSheet(stylesheet.read()) # automatically connect slots QMetaObject.connectSlotsByName(self) def __child_was_closed(self): self._w = None # The child was deleted, remove the reference to it and close the parent window self.close() def closeEvent(self, event): if not self._w: event.accept() else: self._w.close() event.setAccepted(self._w.isHidden()) def setWindowTitle(self, title): """ Set window title. Args: title (str): Title. """ super(ModernWindow, self).setWindowTitle(title) self.lblTitle.setText(title) def _setWindowButtonState(self, hint, state): btns = { Qt.WindowCloseButtonHint: self.btnClose, Qt.WindowMinimizeButtonHint: self.btnMinimize, Qt.WindowMaximizeButtonHint: self.btnMaximize } button = btns.get(hint) maximized = bool(self.windowState() & Qt.WindowMaximized) if button == self.btnMaximize: # special rules for max/restore self.btnRestore.setEnabled(state) self.btnMaximize.setEnabled(state) if maximized: self.btnRestore.setVisible(state) self.btnMaximize.setVisible(False) else: self.btnMaximize.setVisible(state) self.btnRestore.setVisible(False) else: button.setEnabled(state) allButtons = [ self.btnClose, self.btnMinimize, self.btnMaximize, self.btnRestore ] if True in [b.isEnabled() for b in allButtons]: for b in allButtons: b.setVisible(True) if maximized: self.btnMaximize.setVisible(False) else: self.btnRestore.setVisible(False) self.lblTitle.setContentsMargins(0, 0, 0, 0) else: for b in allButtons: b.setVisible(False) self.lblTitle.setContentsMargins(0, 2, 0, 0) def setWindowFlag(self, Qt_WindowType, on=True): buttonHints = [ Qt.WindowCloseButtonHint, Qt.WindowMinimizeButtonHint, Qt.WindowMaximizeButtonHint ] if Qt_WindowType in buttonHints: self._setWindowButtonState(Qt_WindowType, on) else: QWidget.setWindowFlag(self, Qt_WindowType, on) def setWindowFlags(self, Qt_WindowFlags): buttonHints = [ Qt.WindowCloseButtonHint, Qt.WindowMinimizeButtonHint, Qt.WindowMaximizeButtonHint ] for hint in buttonHints: self._setWindowButtonState(hint, bool(Qt_WindowFlags & hint)) QWidget.setWindowFlags(self, Qt_WindowFlags) @Slot() def on_btnMinimize_clicked(self): self.setWindowState(Qt.WindowMinimized) @Slot() def on_btnRestore_clicked(self): if self.btnMaximize.isEnabled() or self.btnRestore.isEnabled(): self.btnRestore.setVisible(False) self.btnRestore.setEnabled(False) self.btnMaximize.setVisible(True) self.btnMaximize.setEnabled(True) self.setWindowState(Qt.WindowNoState) @Slot() def on_btnMaximize_clicked(self): if self.btnMaximize.isEnabled() or self.btnRestore.isEnabled(): self.btnRestore.setVisible(True) self.btnRestore.setEnabled(True) self.btnMaximize.setVisible(False) self.btnMaximize.setEnabled(False) self.setWindowState(Qt.WindowMaximized) @Slot() def on_btnClose_clicked(self): self.close() @Slot() def on_titleBar_doubleClicked(self): if not bool(self.windowState() & Qt.WindowMaximized): self.on_btnMaximize_clicked() else: self.on_btnRestore_clicked()
def setupUi(self, ProfilesDialog_UI): if not ProfilesDialog_UI.objectName(): ProfilesDialog_UI.setObjectName(u"ProfilesDialog_UI") ProfilesDialog_UI.resize(594, 639) self.gridLayout_2 = QGridLayout(ProfilesDialog_UI) self.gridLayout_2.setObjectName(u"gridLayout_2") self.button_create = QToolButton(ProfilesDialog_UI) self.button_create.setObjectName(u"button_create") icon = QIcon() iconThemeName = u"document-new" if QIcon.hasThemeIcon(iconThemeName): icon = QIcon.fromTheme(iconThemeName) else: icon.addFile(u".", QSize(), QIcon.Normal, QIcon.Off) self.button_create.setIcon(icon) self.gridLayout_2.addWidget(self.button_create, 0, 4, 1, 1) self.label = QLabel(ProfilesDialog_UI) self.label.setObjectName(u"label") self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1) self.button_delete = QToolButton(ProfilesDialog_UI) self.button_delete.setObjectName(u"button_delete") self.button_delete.setEnabled(False) icon1 = QIcon() iconThemeName = u"delete" if QIcon.hasThemeIcon(iconThemeName): icon1 = QIcon.fromTheme(iconThemeName) else: icon1.addFile(u".", QSize(), QIcon.Normal, QIcon.Off) self.button_delete.setIcon(icon1) self.gridLayout_2.addWidget(self.button_delete, 0, 6, 1, 1) self.properties = QGroupBox(ProfilesDialog_UI) self.properties.setObjectName(u"properties") self.gridLayout = QGridLayout(self.properties) self.gridLayout.setObjectName(u"gridLayout") self.aspect_den = QSpinBox(self.properties) self.aspect_den.setObjectName(u"aspect_den") self.aspect_den.setMinimum(1) self.aspect_den.setMaximum(10000) self.gridLayout.addWidget(self.aspect_den, 4, 3, 1, 1) self.size_w = QSpinBox(self.properties) self.size_w.setObjectName(u"size_w") self.size_w.setMinimum(1) self.size_w.setMaximum(10000) self.gridLayout.addWidget(self.size_w, 1, 1, 1, 1) self.size_h = QSpinBox(self.properties) self.size_h.setObjectName(u"size_h") self.size_h.setMinimum(1) self.size_h.setMaximum(10000) self.gridLayout.addWidget(self.size_h, 1, 3, 1, 1) self.fields = QLabel(self.properties) self.fields.setObjectName(u"fields") self.fields.setText(u"interl: 2*fps") self.gridLayout.addWidget(self.fields, 3, 3, 1, 1) self.label_dar = QLabel(self.properties) self.label_dar.setObjectName(u"label_dar") self.label_dar.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_dar, 5, 0, 1, 1) self.label_3 = QLabel(self.properties) self.label_3.setObjectName(u"label_3") self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1) self.description = QLineEdit(self.properties) self.description.setObjectName(u"description") self.gridLayout.addWidget(self.description, 0, 1, 1, 3) self.colorspace = KComboBox(self.properties) self.colorspace.setObjectName(u"colorspace") self.gridLayout.addWidget(self.colorspace, 7, 1, 1, 3) self.label_8 = QLabel(self.properties) self.label_8.setObjectName(u"label_8") sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) self.label_8.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_8, 5, 2, 1, 1) self.field_order = QComboBox(self.properties) self.field_order.addItem("") self.field_order.addItem("") self.field_order.setObjectName(u"field_order") self.gridLayout.addWidget(self.field_order, 9, 1, 1, 3) self.display_num = QSpinBox(self.properties) self.display_num.setObjectName(u"display_num") self.display_num.setMinimum(1) self.display_num.setMaximum(10000) self.gridLayout.addWidget(self.display_num, 5, 1, 1, 1) self.label_scanning = QLabel(self.properties) self.label_scanning.setObjectName(u"label_scanning") self.label_scanning.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_scanning, 8, 0, 1, 1) self.label_4 = QLabel(self.properties) self.label_4.setObjectName(u"label_4") sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_4, 2, 2, 1, 1) self.aspect_num = QSpinBox(self.properties) self.aspect_num.setObjectName(u"aspect_num") self.aspect_num.setMinimum(1) self.aspect_num.setMaximum(10000) self.gridLayout.addWidget(self.aspect_num, 4, 1, 1, 1) self.label_6 = QLabel(self.properties) self.label_6.setObjectName(u"label_6") sizePolicy.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth()) self.label_6.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_6, 1, 2, 1, 1) self.label_2 = QLabel(self.properties) self.label_2.setObjectName(u"label_2") self.label_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1) self.scanning = QComboBox(self.properties) self.scanning.addItem("") self.scanning.addItem("") self.scanning.setObjectName(u"scanning") self.gridLayout.addWidget(self.scanning, 8, 1, 1, 3) self.frame_num = QSpinBox(self.properties) self.frame_num.setObjectName(u"frame_num") self.frame_num.setMinimum(1) self.frame_num.setMaximum(500000) self.gridLayout.addWidget(self.frame_num, 2, 1, 1, 1) self.display_den = QSpinBox(self.properties) self.display_den.setObjectName(u"display_den") self.display_den.setMinimum(1) self.display_den.setMaximum(10000) self.gridLayout.addWidget(self.display_den, 5, 3, 1, 1) self.verticalSpacer = QSpacerItem(105, 17, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.verticalSpacer, 11, 0, 1, 2) self.label_9 = QLabel(self.properties) self.label_9.setObjectName(u"label_9") self.label_9.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_9, 4, 0, 1, 1) self.label_12 = QLabel(self.properties) self.label_12.setObjectName(u"label_12") self.label_12.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_12, 7, 0, 1, 1) self.label_5 = QLabel(self.properties) self.label_5.setObjectName(u"label_5") self.label_5.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_5, 1, 0, 1, 1) self.label_field_order = QLabel(self.properties) self.label_field_order.setObjectName(u"label_field_order") self.label_field_order.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_field_order, 9, 0, 1, 1) self.label_7 = QLabel(self.properties) self.label_7.setObjectName(u"label_7") sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth()) self.label_7.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_7, 4, 2, 1, 1) self.frame_den = QSpinBox(self.properties) self.frame_den.setObjectName(u"frame_den") self.frame_den.setMinimum(1) self.frame_den.setMaximum(10000) self.gridLayout.addWidget(self.frame_den, 2, 3, 1, 1) self.label_11 = QLabel(self.properties) self.label_11.setObjectName(u"label_11") self.label_11.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_11, 3, 0, 1, 1) self.effect_warning = KMessageWidget(self.properties) self.effect_warning.setObjectName(u"effect_warning") self.effect_warning.setWordWrap(True) self.effect_warning.setCloseButtonVisible(False) self.effect_warning.setMessageType(KMessageWidget.Warning) self.gridLayout.addWidget(self.effect_warning, 10, 1, 1, 3) self.gridLayout_2.addWidget(self.properties, 1, 0, 1, 8) self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_2.addItem(self.horizontalSpacer, 0, 3, 1, 1) self.button_save = QToolButton(ProfilesDialog_UI) self.button_save.setObjectName(u"button_save") self.button_save.setEnabled(False) icon2 = QIcon() iconThemeName = u"document-save" if QIcon.hasThemeIcon(iconThemeName): icon2 = QIcon.fromTheme(iconThemeName) else: icon2.addFile(u".", QSize(), QIcon.Normal, QIcon.Off) self.button_save.setIcon(icon2) self.gridLayout_2.addWidget(self.button_save, 0, 5, 1, 1) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_2.addItem(self.horizontalSpacer_2, 3, 3, 1, 2) self.buttonBox = QDialogButtonBox(ProfilesDialog_UI) self.buttonBox.setObjectName(u"buttonBox") self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Close) self.gridLayout_2.addWidget(self.buttonBox, 3, 5, 1, 3) self.profiles_list = QComboBox(ProfilesDialog_UI) self.profiles_list.setObjectName(u"profiles_list") self.gridLayout_2.addWidget(self.profiles_list, 0, 1, 1, 1) self.button_default = QPushButton(ProfilesDialog_UI) self.button_default.setObjectName(u"button_default") self.gridLayout_2.addWidget(self.button_default, 3, 0, 1, 3) self.info_message = KMessageWidget(ProfilesDialog_UI) self.info_message.setObjectName(u"info_message") self.info_message.setWordWrap(True) self.gridLayout_2.addWidget(self.info_message, 2, 0, 1, 8) self.retranslateUi(ProfilesDialog_UI) self.buttonBox.accepted.connect(ProfilesDialog_UI.accept) self.buttonBox.rejected.connect(ProfilesDialog_UI.reject) QMetaObject.connectSlotsByName(ProfilesDialog_UI)
class Ui_ProfilesDialog_UI(object): def setupUi(self, ProfilesDialog_UI): if not ProfilesDialog_UI.objectName(): ProfilesDialog_UI.setObjectName(u"ProfilesDialog_UI") ProfilesDialog_UI.resize(594, 639) self.gridLayout_2 = QGridLayout(ProfilesDialog_UI) self.gridLayout_2.setObjectName(u"gridLayout_2") self.button_create = QToolButton(ProfilesDialog_UI) self.button_create.setObjectName(u"button_create") icon = QIcon() iconThemeName = u"document-new" if QIcon.hasThemeIcon(iconThemeName): icon = QIcon.fromTheme(iconThemeName) else: icon.addFile(u".", QSize(), QIcon.Normal, QIcon.Off) self.button_create.setIcon(icon) self.gridLayout_2.addWidget(self.button_create, 0, 4, 1, 1) self.label = QLabel(ProfilesDialog_UI) self.label.setObjectName(u"label") self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1) self.button_delete = QToolButton(ProfilesDialog_UI) self.button_delete.setObjectName(u"button_delete") self.button_delete.setEnabled(False) icon1 = QIcon() iconThemeName = u"delete" if QIcon.hasThemeIcon(iconThemeName): icon1 = QIcon.fromTheme(iconThemeName) else: icon1.addFile(u".", QSize(), QIcon.Normal, QIcon.Off) self.button_delete.setIcon(icon1) self.gridLayout_2.addWidget(self.button_delete, 0, 6, 1, 1) self.properties = QGroupBox(ProfilesDialog_UI) self.properties.setObjectName(u"properties") self.gridLayout = QGridLayout(self.properties) self.gridLayout.setObjectName(u"gridLayout") self.aspect_den = QSpinBox(self.properties) self.aspect_den.setObjectName(u"aspect_den") self.aspect_den.setMinimum(1) self.aspect_den.setMaximum(10000) self.gridLayout.addWidget(self.aspect_den, 4, 3, 1, 1) self.size_w = QSpinBox(self.properties) self.size_w.setObjectName(u"size_w") self.size_w.setMinimum(1) self.size_w.setMaximum(10000) self.gridLayout.addWidget(self.size_w, 1, 1, 1, 1) self.size_h = QSpinBox(self.properties) self.size_h.setObjectName(u"size_h") self.size_h.setMinimum(1) self.size_h.setMaximum(10000) self.gridLayout.addWidget(self.size_h, 1, 3, 1, 1) self.fields = QLabel(self.properties) self.fields.setObjectName(u"fields") self.fields.setText(u"interl: 2*fps") self.gridLayout.addWidget(self.fields, 3, 3, 1, 1) self.label_dar = QLabel(self.properties) self.label_dar.setObjectName(u"label_dar") self.label_dar.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_dar, 5, 0, 1, 1) self.label_3 = QLabel(self.properties) self.label_3.setObjectName(u"label_3") self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1) self.description = QLineEdit(self.properties) self.description.setObjectName(u"description") self.gridLayout.addWidget(self.description, 0, 1, 1, 3) self.colorspace = KComboBox(self.properties) self.colorspace.setObjectName(u"colorspace") self.gridLayout.addWidget(self.colorspace, 7, 1, 1, 3) self.label_8 = QLabel(self.properties) self.label_8.setObjectName(u"label_8") sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) self.label_8.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_8, 5, 2, 1, 1) self.field_order = QComboBox(self.properties) self.field_order.addItem("") self.field_order.addItem("") self.field_order.setObjectName(u"field_order") self.gridLayout.addWidget(self.field_order, 9, 1, 1, 3) self.display_num = QSpinBox(self.properties) self.display_num.setObjectName(u"display_num") self.display_num.setMinimum(1) self.display_num.setMaximum(10000) self.gridLayout.addWidget(self.display_num, 5, 1, 1, 1) self.label_scanning = QLabel(self.properties) self.label_scanning.setObjectName(u"label_scanning") self.label_scanning.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_scanning, 8, 0, 1, 1) self.label_4 = QLabel(self.properties) self.label_4.setObjectName(u"label_4") sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_4, 2, 2, 1, 1) self.aspect_num = QSpinBox(self.properties) self.aspect_num.setObjectName(u"aspect_num") self.aspect_num.setMinimum(1) self.aspect_num.setMaximum(10000) self.gridLayout.addWidget(self.aspect_num, 4, 1, 1, 1) self.label_6 = QLabel(self.properties) self.label_6.setObjectName(u"label_6") sizePolicy.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth()) self.label_6.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_6, 1, 2, 1, 1) self.label_2 = QLabel(self.properties) self.label_2.setObjectName(u"label_2") self.label_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1) self.scanning = QComboBox(self.properties) self.scanning.addItem("") self.scanning.addItem("") self.scanning.setObjectName(u"scanning") self.gridLayout.addWidget(self.scanning, 8, 1, 1, 3) self.frame_num = QSpinBox(self.properties) self.frame_num.setObjectName(u"frame_num") self.frame_num.setMinimum(1) self.frame_num.setMaximum(500000) self.gridLayout.addWidget(self.frame_num, 2, 1, 1, 1) self.display_den = QSpinBox(self.properties) self.display_den.setObjectName(u"display_den") self.display_den.setMinimum(1) self.display_den.setMaximum(10000) self.gridLayout.addWidget(self.display_den, 5, 3, 1, 1) self.verticalSpacer = QSpacerItem(105, 17, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.verticalSpacer, 11, 0, 1, 2) self.label_9 = QLabel(self.properties) self.label_9.setObjectName(u"label_9") self.label_9.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_9, 4, 0, 1, 1) self.label_12 = QLabel(self.properties) self.label_12.setObjectName(u"label_12") self.label_12.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_12, 7, 0, 1, 1) self.label_5 = QLabel(self.properties) self.label_5.setObjectName(u"label_5") self.label_5.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_5, 1, 0, 1, 1) self.label_field_order = QLabel(self.properties) self.label_field_order.setObjectName(u"label_field_order") self.label_field_order.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_field_order, 9, 0, 1, 1) self.label_7 = QLabel(self.properties) self.label_7.setObjectName(u"label_7") sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth()) self.label_7.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.label_7, 4, 2, 1, 1) self.frame_den = QSpinBox(self.properties) self.frame_den.setObjectName(u"frame_den") self.frame_den.setMinimum(1) self.frame_den.setMaximum(10000) self.gridLayout.addWidget(self.frame_den, 2, 3, 1, 1) self.label_11 = QLabel(self.properties) self.label_11.setObjectName(u"label_11") self.label_11.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.gridLayout.addWidget(self.label_11, 3, 0, 1, 1) self.effect_warning = KMessageWidget(self.properties) self.effect_warning.setObjectName(u"effect_warning") self.effect_warning.setWordWrap(True) self.effect_warning.setCloseButtonVisible(False) self.effect_warning.setMessageType(KMessageWidget.Warning) self.gridLayout.addWidget(self.effect_warning, 10, 1, 1, 3) self.gridLayout_2.addWidget(self.properties, 1, 0, 1, 8) self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_2.addItem(self.horizontalSpacer, 0, 3, 1, 1) self.button_save = QToolButton(ProfilesDialog_UI) self.button_save.setObjectName(u"button_save") self.button_save.setEnabled(False) icon2 = QIcon() iconThemeName = u"document-save" if QIcon.hasThemeIcon(iconThemeName): icon2 = QIcon.fromTheme(iconThemeName) else: icon2.addFile(u".", QSize(), QIcon.Normal, QIcon.Off) self.button_save.setIcon(icon2) self.gridLayout_2.addWidget(self.button_save, 0, 5, 1, 1) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_2.addItem(self.horizontalSpacer_2, 3, 3, 1, 2) self.buttonBox = QDialogButtonBox(ProfilesDialog_UI) self.buttonBox.setObjectName(u"buttonBox") self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Close) self.gridLayout_2.addWidget(self.buttonBox, 3, 5, 1, 3) self.profiles_list = QComboBox(ProfilesDialog_UI) self.profiles_list.setObjectName(u"profiles_list") self.gridLayout_2.addWidget(self.profiles_list, 0, 1, 1, 1) self.button_default = QPushButton(ProfilesDialog_UI) self.button_default.setObjectName(u"button_default") self.gridLayout_2.addWidget(self.button_default, 3, 0, 1, 3) self.info_message = KMessageWidget(ProfilesDialog_UI) self.info_message.setObjectName(u"info_message") self.info_message.setWordWrap(True) self.gridLayout_2.addWidget(self.info_message, 2, 0, 1, 8) self.retranslateUi(ProfilesDialog_UI) self.buttonBox.accepted.connect(ProfilesDialog_UI.accept) self.buttonBox.rejected.connect(ProfilesDialog_UI.reject) QMetaObject.connectSlotsByName(ProfilesDialog_UI) # setupUi def retranslateUi(self, ProfilesDialog_UI): ProfilesDialog_UI.setWindowTitle(QCoreApplication.translate("ProfilesDialog_UI", u"Profiles", None)) #if QT_CONFIG(tooltip) self.button_create.setToolTip(QCoreApplication.translate("ProfilesDialog_UI", u"Create new profile", None)) #endif // QT_CONFIG(tooltip) self.button_create.setText(QCoreApplication.translate("ProfilesDialog_UI", u"C", None)) self.label.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Profile:", None)) #if QT_CONFIG(tooltip) self.button_delete.setToolTip(QCoreApplication.translate("ProfilesDialog_UI", u"Delete profile", None)) #endif // QT_CONFIG(tooltip) self.button_delete.setText(QCoreApplication.translate("ProfilesDialog_UI", u"D", None)) self.properties.setTitle(QCoreApplication.translate("ProfilesDialog_UI", u"Properties", None)) self.label_dar.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Display aspect ratio:", None)) self.label_3.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Frame rate:", None)) self.label_8.setText(QCoreApplication.translate("ProfilesDialog_UI", u"/", None)) self.field_order.setItemText(0, QCoreApplication.translate("ProfilesDialog_UI", u"Top Field First", None)) self.field_order.setItemText(1, QCoreApplication.translate("ProfilesDialog_UI", u"Bottom Field First", None)) self.label_scanning.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Scanning:", None)) self.label_4.setText(QCoreApplication.translate("ProfilesDialog_UI", u"/", None)) self.label_6.setText(QCoreApplication.translate("ProfilesDialog_UI", u"x", None)) self.label_2.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Description:", None)) self.scanning.setItemText(0, QCoreApplication.translate("ProfilesDialog_UI", u"Interlaced", None)) self.scanning.setItemText(1, QCoreApplication.translate("ProfilesDialog_UI", u"Progressive", None)) self.label_9.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Pixel aspect ratio:", None)) self.label_12.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Colorspace:", None)) self.label_5.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Size:", None)) self.label_field_order.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Field order:", None)) self.label_7.setText(QCoreApplication.translate("ProfilesDialog_UI", u"/", None)) self.label_11.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Fields per second:", None)) self.effect_warning.setText(QCoreApplication.translate("ProfilesDialog_UI", u"The \"avfilter.fieldorder\" effect is internally used to set the field order, but the effect was not found.\n" "This feature will not work as expected.", None)) #if QT_CONFIG(tooltip) self.button_save.setToolTip(QCoreApplication.translate("ProfilesDialog_UI", u"Save profile", None)) #endif // QT_CONFIG(tooltip) self.button_save.setText(QCoreApplication.translate("ProfilesDialog_UI", u"S", None)) self.button_default.setText(QCoreApplication.translate("ProfilesDialog_UI", u"Use as default", None))
class Foldable(QWidget): _mainLayout: QGridLayout _toggleButton: QToolButton _headerLine: QFrame _contentArea: QScrollArea _folded: bool def __init__(self, title: str, initially_folded: bool = True, parent: QWidget = None): super().__init__(parent) self._folded = initially_folded self._toggleButton = QToolButton(self) self._toggleButton.setStyleSheet("QToolButton { height: 20px; }") font = self._toggleButton.font() font.setBold(True) font.setPixelSize(13) self._toggleButton.setFont(font) self._toggleButton.setMaximumHeight(20) self._toggleButton.setToolButtonStyle( Qt.ToolButtonStyle.ToolButtonTextBesideIcon) self._toggleButton.setArrowType(Qt.ArrowType.RightArrow) self._toggleButton.setText(title) self._toggleButton.setCheckable(True) self._toggleButton.setChecked(False) self._toggleButton.clicked.connect(self._on_click) self._headerLine = QFrame(self) self._headerLine.setFrameShape(QFrame.HLine) self._headerLine.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum) self._contentArea = QFrame(self) self._contentArea.setObjectName("foldable_contentArea") self._contentArea.setStyleSheet( "#foldable_contentArea { border: none; }") self._contentArea.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) self._mainLayout = QGridLayout(self) self._mainLayout.setVerticalSpacing(0) self._mainLayout.setContentsMargins(0, 0, 0, 0) self._mainLayout.addWidget(self._toggleButton, 0, 0, 1, 1, Qt.AlignLeft) self._mainLayout.addWidget(self._headerLine, 0, 1, 1, 1) self._mainLayout.addWidget(self._contentArea, 1, 0, 1, 2) @property def contents(self): return self._contentArea def _on_click(self, checked: bool): if self._folded: self._unfold() else: self._fold() def _unfold(self): self._folded = False self._contentArea.show() self._toggleButton.setArrowType(Qt.ArrowType.DownArrow) def _fold(self): self._folded = True self._contentArea.hide() self._toggleButton.setArrowType(Qt.ArrowType.RightArrow) def set_content_layout(self, content_layout: QLayout): self._contentArea.setLayout(content_layout) if self._folded: self._fold() else: self._unfold()
def setupUi(self, demoView): if not demoView.objectName(): demoView.setObjectName(u"demoView") demoView.resize(570, 550) self.verticalLayout_2 = QVBoxLayout(demoView) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.demoViewGroupBox = QGroupBox(demoView) self.demoViewGroupBox.setObjectName(u"demoViewGroupBox") self.demoViewGroupBox.setFlat(True) self.verticalLayout_6 = QVBoxLayout(self.demoViewGroupBox) self.verticalLayout_6.setObjectName(u"verticalLayout_6") self.verticalLayout_6.setContentsMargins(4, 4, 4, 4) self.demoTreeView = QTreeWidget(self.demoViewGroupBox) __qtreewidgetitem = QTreeWidgetItem() __qtreewidgetitem.setText(0, u"Step") self.demoTreeView.setHeaderItem(__qtreewidgetitem) self.demoTreeView.setObjectName(u"demoTreeView") self.verticalLayout_6.addWidget(self.demoTreeView) self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") self.demoDuplicateBtn = QPushButton(self.demoViewGroupBox) self.demoDuplicateBtn.setObjectName(u"demoDuplicateBtn") self.horizontalLayout_5.addWidget(self.demoDuplicateBtn) self.demoInsertSectionBtn = QPushButton(self.demoViewGroupBox) self.demoInsertSectionBtn.setObjectName(u"demoInsertSectionBtn") self.horizontalLayout_5.addWidget(self.demoInsertSectionBtn) self.demoDeleteBtn = QPushButton(self.demoViewGroupBox) self.demoDeleteBtn.setObjectName(u"demoDeleteBtn") self.horizontalLayout_5.addWidget(self.demoDeleteBtn) self.demoAddStepBtn = QPushButton(self.demoViewGroupBox) self.demoAddStepBtn.setObjectName(u"demoAddStepBtn") self.horizontalLayout_5.addWidget(self.demoAddStepBtn) self.demoOverflowBtn = QToolButton(self.demoViewGroupBox) self.demoOverflowBtn.setObjectName(u"demoOverflowBtn") self.horizontalLayout_5.addWidget(self.demoOverflowBtn) self.verticalLayout_6.addLayout(self.horizontalLayout_5) self.verticalLayout_2.addWidget(self.demoViewGroupBox) self.metadataGroupBox = QGroupBox(demoView) self.metadataGroupBox.setObjectName(u"metadataGroupBox") self.metadataGroupBox.setMaximumSize(QSize(16777215, 300)) self.metadataGroupBox.setFlat(True) self.metadataGroupBox.setCheckable(False) self.verticalLayout_8 = QVBoxLayout(self.metadataGroupBox) self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.verticalLayout_8.setContentsMargins(4, 4, 4, 4) self.dataStack = QStackedWidget(self.metadataGroupBox) self.dataStack.setObjectName(u"dataStack") self.stepDataL = QWidget() self.stepDataL.setObjectName(u"stepDataL") self.verticalLayout_14 = QVBoxLayout(self.stepDataL) self.verticalLayout_14.setObjectName(u"verticalLayout_14") self.metadataTreeWidget = QTreeWidget(self.stepDataL) self.metadataTreeWidget.setObjectName(u"metadataTreeWidget") self.verticalLayout_14.addWidget(self.metadataTreeWidget) self.stepDataBtnL = QHBoxLayout() self.stepDataBtnL.setObjectName(u"stepDataBtnL") self.pushButton_2 = QPushButton(self.stepDataL) self.pushButton_2.setObjectName(u"pushButton_2") self.stepDataBtnL.addWidget(self.pushButton_2) self.pushButton = QPushButton(self.stepDataL) self.pushButton.setObjectName(u"pushButton") self.stepDataBtnL.addWidget(self.pushButton) self.toolButton = QToolButton(self.stepDataL) self.toolButton.setObjectName(u"toolButton") self.stepDataBtnL.addWidget(self.toolButton) self.verticalLayout_14.addLayout(self.stepDataBtnL) self.dataStack.addWidget(self.stepDataL) self.sectDataL = QWidget() self.sectDataL.setObjectName(u"sectDataL") self.verticalLayout_16 = QVBoxLayout(self.sectDataL) self.verticalLayout_16.setObjectName(u"verticalLayout_16") self.sectionDataTreeW = QTreeWidget(self.sectDataL) self.sectionDataTreeW.setObjectName(u"sectionDataTreeW") self.verticalLayout_16.addWidget(self.sectionDataTreeW) self.sectionDataBtnL = QHBoxLayout() self.sectionDataBtnL.setObjectName(u"sectionDataBtnL") self.pushButton_4 = QPushButton(self.sectDataL) self.pushButton_4.setObjectName(u"pushButton_4") self.sectionDataBtnL.addWidget(self.pushButton_4) self.pushButton_3 = QPushButton(self.sectDataL) self.pushButton_3.setObjectName(u"pushButton_3") self.sectionDataBtnL.addWidget(self.pushButton_3) self.pushButton_5 = QPushButton(self.sectDataL) self.pushButton_5.setObjectName(u"pushButton_5") self.sectionDataBtnL.addWidget(self.pushButton_5) self.toolButton_2 = QToolButton(self.sectDataL) self.toolButton_2.setObjectName(u"toolButton_2") self.sectionDataBtnL.addWidget(self.toolButton_2) self.verticalLayout_16.addLayout(self.sectionDataBtnL) self.dataStack.addWidget(self.sectDataL) self.verticalLayout_8.addWidget(self.dataStack) self.verticalLayout_2.addWidget(self.metadataGroupBox) self.retranslateUi(demoView) self.dataStack.setCurrentIndex(1) QMetaObject.connectSlotsByName(demoView)
class Ui_demoView(object): def setupUi(self, demoView): if not demoView.objectName(): demoView.setObjectName(u"demoView") demoView.resize(570, 550) self.verticalLayout_2 = QVBoxLayout(demoView) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.demoViewGroupBox = QGroupBox(demoView) self.demoViewGroupBox.setObjectName(u"demoViewGroupBox") self.demoViewGroupBox.setFlat(True) self.verticalLayout_6 = QVBoxLayout(self.demoViewGroupBox) self.verticalLayout_6.setObjectName(u"verticalLayout_6") self.verticalLayout_6.setContentsMargins(4, 4, 4, 4) self.demoTreeView = QTreeWidget(self.demoViewGroupBox) __qtreewidgetitem = QTreeWidgetItem() __qtreewidgetitem.setText(0, u"Step") self.demoTreeView.setHeaderItem(__qtreewidgetitem) self.demoTreeView.setObjectName(u"demoTreeView") self.verticalLayout_6.addWidget(self.demoTreeView) self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") self.demoDuplicateBtn = QPushButton(self.demoViewGroupBox) self.demoDuplicateBtn.setObjectName(u"demoDuplicateBtn") self.horizontalLayout_5.addWidget(self.demoDuplicateBtn) self.demoInsertSectionBtn = QPushButton(self.demoViewGroupBox) self.demoInsertSectionBtn.setObjectName(u"demoInsertSectionBtn") self.horizontalLayout_5.addWidget(self.demoInsertSectionBtn) self.demoDeleteBtn = QPushButton(self.demoViewGroupBox) self.demoDeleteBtn.setObjectName(u"demoDeleteBtn") self.horizontalLayout_5.addWidget(self.demoDeleteBtn) self.demoAddStepBtn = QPushButton(self.demoViewGroupBox) self.demoAddStepBtn.setObjectName(u"demoAddStepBtn") self.horizontalLayout_5.addWidget(self.demoAddStepBtn) self.demoOverflowBtn = QToolButton(self.demoViewGroupBox) self.demoOverflowBtn.setObjectName(u"demoOverflowBtn") self.horizontalLayout_5.addWidget(self.demoOverflowBtn) self.verticalLayout_6.addLayout(self.horizontalLayout_5) self.verticalLayout_2.addWidget(self.demoViewGroupBox) self.metadataGroupBox = QGroupBox(demoView) self.metadataGroupBox.setObjectName(u"metadataGroupBox") self.metadataGroupBox.setMaximumSize(QSize(16777215, 300)) self.metadataGroupBox.setFlat(True) self.metadataGroupBox.setCheckable(False) self.verticalLayout_8 = QVBoxLayout(self.metadataGroupBox) self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.verticalLayout_8.setContentsMargins(4, 4, 4, 4) self.dataStack = QStackedWidget(self.metadataGroupBox) self.dataStack.setObjectName(u"dataStack") self.stepDataL = QWidget() self.stepDataL.setObjectName(u"stepDataL") self.verticalLayout_14 = QVBoxLayout(self.stepDataL) self.verticalLayout_14.setObjectName(u"verticalLayout_14") self.metadataTreeWidget = QTreeWidget(self.stepDataL) self.metadataTreeWidget.setObjectName(u"metadataTreeWidget") self.verticalLayout_14.addWidget(self.metadataTreeWidget) self.stepDataBtnL = QHBoxLayout() self.stepDataBtnL.setObjectName(u"stepDataBtnL") self.pushButton_2 = QPushButton(self.stepDataL) self.pushButton_2.setObjectName(u"pushButton_2") self.stepDataBtnL.addWidget(self.pushButton_2) self.pushButton = QPushButton(self.stepDataL) self.pushButton.setObjectName(u"pushButton") self.stepDataBtnL.addWidget(self.pushButton) self.toolButton = QToolButton(self.stepDataL) self.toolButton.setObjectName(u"toolButton") self.stepDataBtnL.addWidget(self.toolButton) self.verticalLayout_14.addLayout(self.stepDataBtnL) self.dataStack.addWidget(self.stepDataL) self.sectDataL = QWidget() self.sectDataL.setObjectName(u"sectDataL") self.verticalLayout_16 = QVBoxLayout(self.sectDataL) self.verticalLayout_16.setObjectName(u"verticalLayout_16") self.sectionDataTreeW = QTreeWidget(self.sectDataL) self.sectionDataTreeW.setObjectName(u"sectionDataTreeW") self.verticalLayout_16.addWidget(self.sectionDataTreeW) self.sectionDataBtnL = QHBoxLayout() self.sectionDataBtnL.setObjectName(u"sectionDataBtnL") self.pushButton_4 = QPushButton(self.sectDataL) self.pushButton_4.setObjectName(u"pushButton_4") self.sectionDataBtnL.addWidget(self.pushButton_4) self.pushButton_3 = QPushButton(self.sectDataL) self.pushButton_3.setObjectName(u"pushButton_3") self.sectionDataBtnL.addWidget(self.pushButton_3) self.pushButton_5 = QPushButton(self.sectDataL) self.pushButton_5.setObjectName(u"pushButton_5") self.sectionDataBtnL.addWidget(self.pushButton_5) self.toolButton_2 = QToolButton(self.sectDataL) self.toolButton_2.setObjectName(u"toolButton_2") self.sectionDataBtnL.addWidget(self.toolButton_2) self.verticalLayout_16.addLayout(self.sectionDataBtnL) self.dataStack.addWidget(self.sectDataL) self.verticalLayout_8.addWidget(self.dataStack) self.verticalLayout_2.addWidget(self.metadataGroupBox) self.retranslateUi(demoView) self.dataStack.setCurrentIndex(1) QMetaObject.connectSlotsByName(demoView) # setupUi def retranslateUi(self, demoView): demoView.setWindowTitle( QCoreApplication.translate("demoView", u"Form", None)) self.demoViewGroupBox.setTitle( QCoreApplication.translate("demoView", u"Demo (None loaded)", None)) ___qtreewidgetitem = self.demoTreeView.headerItem() ___qtreewidgetitem.setText( 2, QCoreApplication.translate("demoView", u"CI", None)) ___qtreewidgetitem.setText( 1, QCoreApplication.translate("demoView", u"TP", None)) self.demoDuplicateBtn.setText( QCoreApplication.translate("demoView", u"Duplicate", None)) self.demoInsertSectionBtn.setText( QCoreApplication.translate("demoView", u"Insert section", None)) self.demoDeleteBtn.setText( QCoreApplication.translate("demoView", u"-", None)) self.demoAddStepBtn.setText( QCoreApplication.translate("demoView", u"+", None)) self.demoOverflowBtn.setText( QCoreApplication.translate("demoView", u"...", None)) self.metadataGroupBox.setTitle( QCoreApplication.translate("demoView", u"Metadata", None)) ___qtreewidgetitem1 = self.metadataTreeWidget.headerItem() ___qtreewidgetitem1.setText( 1, QCoreApplication.translate("demoView", u"Value", None)) ___qtreewidgetitem1.setText( 0, QCoreApplication.translate("demoView", u"Property", None)) self.pushButton_2.setText( QCoreApplication.translate("demoView", u"Set animated", None)) self.pushButton.setText( QCoreApplication.translate("demoView", u"Add highlight", None)) self.toolButton.setText( QCoreApplication.translate("demoView", u"...", None)) ___qtreewidgetitem2 = self.sectionDataTreeW.headerItem() ___qtreewidgetitem2.setText( 1, QCoreApplication.translate("demoView", u"Value", None)) ___qtreewidgetitem2.setText( 0, QCoreApplication.translate("demoView", u"Property", None)) self.pushButton_4.setText( QCoreApplication.translate("demoView", u"Set Animated", None)) self.pushButton_3.setText( QCoreApplication.translate("demoView", u"Set Guided", None)) self.pushButton_5.setText( QCoreApplication.translate("demoView", u"Set Scroll", None)) self.toolButton_2.setText( QCoreApplication.translate("demoView", u"...", None))
def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.setWindowModality(Qt.ApplicationModal) MainWindow.resize(1492, 1852) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) MainWindow.setMinimumSize(QSize(700, 700)) MainWindow.setMaximumSize(QSize(16777215, 16777215)) MainWindow.setBaseSize(QSize(600, 600)) font = QFont() font.setPointSize(12) font.setKerning(True) MainWindow.setFont(font) MainWindow.setAutoFillBackground(False) MainWindow.setStyleSheet(u"") MainWindow.setDocumentMode(False) MainWindow.setTabShape(QTabWidget.Rounded) MainWindow.setDockOptions(QMainWindow.AllowTabbedDocks|QMainWindow.AnimatedDocks) MainWindow.setUnifiedTitleAndToolBarOnMac(False) self.action_Quit = QAction(MainWindow) self.action_Quit.setObjectName(u"action_Quit") self.main_widget = QWidget(MainWindow) self.main_widget.setObjectName(u"main_widget") self.main_widget.setEnabled(True) self.main_widget.setMinimumSize(QSize(650, 650)) self.main_widget.setContextMenuPolicy(Qt.DefaultContextMenu) self.main_widget.setAutoFillBackground(False) self.main_widget.setStyleSheet(u"") self.main_layout = QGridLayout(self.main_widget) self.main_layout.setObjectName(u"main_layout") self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.log_button = QPushButton(self.main_widget) self.log_button.setObjectName(u"log_button") sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth(self.log_button.sizePolicy().hasHeightForWidth()) self.log_button.setSizePolicy(sizePolicy1) self.log_button.setMinimumSize(QSize(24, 24)) font1 = QFont() font1.setPointSize(9) font1.setBold(True) font1.setKerning(True) self.log_button.setFont(font1) self.log_button.setCursor(QCursor(Qt.PointingHandCursor)) self.log_button.setCheckable(False) self.log_button.setFlat(True) self.horizontalLayout_2.addWidget(self.log_button) self.main_layout.addLayout(self.horizontalLayout_2, 5, 2, 1, 1) self.shuttle_widget = QWidget(self.main_widget) self.shuttle_widget.setObjectName(u"shuttle_widget") self.shuttle_widget.setMinimumSize(QSize(600, 600)) self.shuttle_widget.setMaximumSize(QSize(600, 600)) self.shuttle_widget.setAutoFillBackground(False) self.shuttle_widget.setStyleSheet(u"QWidget#shuttle_widget {background: url(images/ShuttleXpress_Black.png);\n" " background-repeat:no-repeat;}\n" " ") self.button_1 = QCheckBox(self.shuttle_widget) self.button_1.setObjectName(u"button_1") self.button_1.setGeometry(QRect(80, 266, 24, 24)) sizePolicy1.setHeightForWidth(self.button_1.sizePolicy().hasHeightForWidth()) self.button_1.setSizePolicy(sizePolicy1) self.button_1.setMinimumSize(QSize(24, 24)) self.button_1.setFont(font) self.button_1.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.usb_status = QPushButton(self.shuttle_widget) self.usb_status.setObjectName(u"usb_status") self.usb_status.setEnabled(False) self.usb_status.setGeometry(QRect(288, 10, 24, 24)) sizePolicy1.setHeightForWidth(self.usb_status.sizePolicy().hasHeightForWidth()) self.usb_status.setSizePolicy(sizePolicy1) self.usb_status.setMinimumSize(QSize(24, 24)) self.usb_status.setFont(font1) self.usb_status.setCursor(QCursor(Qt.ArrowCursor)) self.usb_status.setAutoFillBackground(False) self.usb_status.setText(u"") icon = QIcon() icon.addFile(u"images/usb_black_24.png", QSize(), QIcon.Disabled, QIcon.Off) icon.addFile(u"images/usb_white_24.png", QSize(), QIcon.Disabled, QIcon.On) self.usb_status.setIcon(icon) self.usb_status.setIconSize(QSize(24, 24)) self.usb_status.setCheckable(True) self.usb_status.setChecked(False) self.usb_status.setFlat(True) self.button_5 = QCheckBox(self.shuttle_widget) self.button_5.setObjectName(u"button_5") self.button_5.setGeometry(QRect(498, 266, 24, 24)) sizePolicy1.setHeightForWidth(self.button_5.sizePolicy().hasHeightForWidth()) self.button_5.setSizePolicy(sizePolicy1) self.button_5.setMinimumSize(QSize(24, 24)) self.button_5.setFont(font) self.button_5.setLayoutDirection(Qt.RightToLeft) self.button_5.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_pos4 = QRadioButton(self.shuttle_widget) self.wheel_pos4.setObjectName(u"wheel_pos4") self.wheel_pos4.setGeometry(QRect(382, 164, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos4.sizePolicy().hasHeightForWidth()) self.wheel_pos4.setSizePolicy(sizePolicy1) self.wheel_pos4.setMinimumSize(QSize(24, 24)) self.wheel_pos4.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_cent0 = QRadioButton(self.shuttle_widget) self.wheel_cent0.setObjectName(u"wheel_cent0") self.wheel_cent0.setGeometry(QRect(289, 130, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_cent0.sizePolicy().hasHeightForWidth()) self.wheel_cent0.setSizePolicy(sizePolicy1) self.wheel_cent0.setMinimumSize(QSize(24, 24)) self.wheel_cent0.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_cent0.setChecked(True) self.wheel_pos1 = QRadioButton(self.shuttle_widget) self.wheel_pos1.setObjectName(u"wheel_pos1") self.wheel_pos1.setGeometry(QRect(314, 133, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos1.sizePolicy().hasHeightForWidth()) self.wheel_pos1.setSizePolicy(sizePolicy1) self.wheel_pos1.setMinimumSize(QSize(24, 24)) self.wheel_pos1.setStyleSheet(u"color: white;") self.wheel_pos2 = QRadioButton(self.shuttle_widget) self.wheel_pos2.setObjectName(u"wheel_pos2") self.wheel_pos2.setGeometry(QRect(338, 139, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos2.sizePolicy().hasHeightForWidth()) self.wheel_pos2.setSizePolicy(sizePolicy1) self.wheel_pos2.setMinimumSize(QSize(24, 24)) self.wheel_pos2.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.dial = QDial(self.shuttle_widget) self.dial.setObjectName(u"dial") self.dial.setGeometry(QRect(197, 178, 216, 216)) sizePolicy2 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth(self.dial.sizePolicy().hasHeightForWidth()) self.dial.setSizePolicy(sizePolicy2) self.dial.setMinimumSize(QSize(24, 24)) self.dial.setAutoFillBackground(False) self.dial.setStyleSheet(u"background-color: black;") self.dial.setMinimum(0) self.dial.setMaximum(10) self.dial.setPageStep(1) self.dial.setValue(5) self.dial.setSliderPosition(5) self.dial.setInvertedAppearance(False) self.dial.setInvertedControls(False) self.dial.setWrapping(True) self.dial.setNotchTarget(3.700000000000000) self.dial.setNotchesVisible(False) self.wheel_neg6 = QRadioButton(self.shuttle_widget) self.wheel_neg6.setObjectName(u"wheel_neg6") self.wheel_neg6.setGeometry(QRect(162, 204, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg6.sizePolicy().hasHeightForWidth()) self.wheel_neg6.setSizePolicy(sizePolicy1) self.wheel_neg6.setMinimumSize(QSize(24, 24)) self.wheel_neg6.setStyleSheet(u"color: white;") self.wheel_pos5 = QRadioButton(self.shuttle_widget) self.wheel_pos5.setObjectName(u"wheel_pos5") self.wheel_pos5.setGeometry(QRect(400, 182, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos5.sizePolicy().hasHeightForWidth()) self.wheel_pos5.setSizePolicy(sizePolicy1) self.wheel_pos5.setMinimumSize(QSize(24, 24)) self.wheel_pos5.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.button_2 = QCheckBox(self.shuttle_widget) self.button_2.setObjectName(u"button_2") self.button_2.setGeometry(QRect(156, 122, 24, 24)) sizePolicy1.setHeightForWidth(self.button_2.sizePolicy().hasHeightForWidth()) self.button_2.setSizePolicy(sizePolicy1) self.button_2.setMinimumSize(QSize(24, 24)) self.button_2.setFont(font) self.button_2.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_neg5 = QRadioButton(self.shuttle_widget) self.wheel_neg5.setObjectName(u"wheel_neg5") self.wheel_neg5.setGeometry(QRect(178, 182, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg5.sizePolicy().hasHeightForWidth()) self.wheel_neg5.setSizePolicy(sizePolicy1) self.wheel_neg5.setMinimumSize(QSize(24, 24)) self.wheel_neg5.setStyleSheet(u"color: white;") self.wheel_pos6 = QRadioButton(self.shuttle_widget) self.wheel_pos6.setObjectName(u"wheel_pos6") self.wheel_pos6.setGeometry(QRect(416, 204, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos6.sizePolicy().hasHeightForWidth()) self.wheel_pos6.setSizePolicy(sizePolicy1) self.wheel_pos6.setMinimumSize(QSize(24, 24)) self.wheel_pos6.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_neg1 = QRadioButton(self.shuttle_widget) self.wheel_neg1.setObjectName(u"wheel_neg1") self.wheel_neg1.setGeometry(QRect(264, 133, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg1.sizePolicy().hasHeightForWidth()) self.wheel_neg1.setSizePolicy(sizePolicy1) self.wheel_neg1.setMinimumSize(QSize(24, 24)) self.wheel_neg1.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.button_4 = QCheckBox(self.shuttle_widget) self.button_4.setObjectName(u"button_4") self.button_4.setGeometry(QRect(430, 122, 24, 24)) sizePolicy1.setHeightForWidth(self.button_4.sizePolicy().hasHeightForWidth()) self.button_4.setSizePolicy(sizePolicy1) self.button_4.setMinimumSize(QSize(24, 24)) self.button_4.setFont(font) self.button_4.setLayoutDirection(Qt.RightToLeft) self.button_4.setAutoFillBackground(False) self.button_4.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_pos7 = QRadioButton(self.shuttle_widget) self.wheel_pos7.setObjectName(u"wheel_pos7") self.wheel_pos7.setGeometry(QRect(427, 229, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos7.sizePolicy().hasHeightForWidth()) self.wheel_pos7.setSizePolicy(sizePolicy1) self.wheel_pos7.setMinimumSize(QSize(24, 24)) self.wheel_pos7.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.button_3 = QCheckBox(self.shuttle_widget) self.button_3.setObjectName(u"button_3") self.button_3.setGeometry(QRect(290, 72, 24, 24)) sizePolicy1.setHeightForWidth(self.button_3.sizePolicy().hasHeightForWidth()) self.button_3.setSizePolicy(sizePolicy1) self.button_3.setMinimumSize(QSize(24, 24)) self.button_3.setFont(font) self.button_3.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.button_3.setTristate(False) self.wheel_neg2 = QRadioButton(self.shuttle_widget) self.wheel_neg2.setObjectName(u"wheel_neg2") self.wheel_neg2.setGeometry(QRect(240, 139, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg2.sizePolicy().hasHeightForWidth()) self.wheel_neg2.setSizePolicy(sizePolicy1) self.wheel_neg2.setMinimumSize(QSize(24, 24)) self.wheel_neg2.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_pos3 = QRadioButton(self.shuttle_widget) self.wheel_pos3.setObjectName(u"wheel_pos3") self.wheel_pos3.setGeometry(QRect(361, 149, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_pos3.sizePolicy().hasHeightForWidth()) self.wheel_pos3.setSizePolicy(sizePolicy1) self.wheel_pos3.setMinimumSize(QSize(24, 24)) self.wheel_pos3.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_neg3 = QRadioButton(self.shuttle_widget) self.wheel_neg3.setObjectName(u"wheel_neg3") self.wheel_neg3.setGeometry(QRect(217, 149, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg3.sizePolicy().hasHeightForWidth()) self.wheel_neg3.setSizePolicy(sizePolicy1) self.wheel_neg3.setMinimumSize(QSize(24, 24)) self.wheel_neg3.setStyleSheet(u"color: white;") self.wheel_neg4 = QRadioButton(self.shuttle_widget) self.wheel_neg4.setObjectName(u"wheel_neg4") self.wheel_neg4.setGeometry(QRect(196, 164, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg4.sizePolicy().hasHeightForWidth()) self.wheel_neg4.setSizePolicy(sizePolicy1) self.wheel_neg4.setMinimumSize(QSize(24, 24)) self.wheel_neg4.setStyleSheet(u"background: #000000ff;\n" " color: white;\n" " ") self.wheel_neg7 = QRadioButton(self.shuttle_widget) self.wheel_neg7.setObjectName(u"wheel_neg7") self.wheel_neg7.setGeometry(QRect(151, 229, 24, 24)) sizePolicy1.setHeightForWidth(self.wheel_neg7.sizePolicy().hasHeightForWidth()) self.wheel_neg7.setSizePolicy(sizePolicy1) self.wheel_neg7.setMinimumSize(QSize(24, 24)) self.wheel_neg7.setStyleSheet(u"color: white;") self.dial.raise_() self.button_1.raise_() self.usb_status.raise_() self.button_5.raise_() self.wheel_pos4.raise_() self.wheel_cent0.raise_() self.wheel_pos1.raise_() self.wheel_pos2.raise_() self.wheel_neg6.raise_() self.wheel_pos5.raise_() self.button_2.raise_() self.wheel_neg5.raise_() self.wheel_pos6.raise_() self.wheel_neg1.raise_() self.button_4.raise_() self.wheel_pos7.raise_() self.button_3.raise_() self.wheel_neg2.raise_() self.wheel_pos3.raise_() self.wheel_neg3.raise_() self.wheel_neg4.raise_() self.wheel_neg7.raise_() self.main_layout.addWidget(self.shuttle_widget, 3, 2, 1, 1) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.about_button = QPushButton(self.main_widget) self.about_button.setObjectName(u"about_button") sizePolicy1.setHeightForWidth(self.about_button.sizePolicy().hasHeightForWidth()) self.about_button.setSizePolicy(sizePolicy1) self.about_button.setMinimumSize(QSize(24, 24)) self.about_button.setFont(font1) self.about_button.setCursor(QCursor(Qt.WhatsThisCursor)) self.about_button.setCheckable(False) self.about_button.setFlat(True) self.horizontalLayout.addWidget(self.about_button) self.main_layout.addLayout(self.horizontalLayout, 1, 2, 1, 1) self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") self.plug_button = QPushButton(self.main_widget) self.plug_button.setObjectName(u"plug_button") sizePolicy1.setHeightForWidth(self.plug_button.sizePolicy().hasHeightForWidth()) self.plug_button.setSizePolicy(sizePolicy1) self.plug_button.setMinimumSize(QSize(24, 24)) self.plug_button.setFont(font1) self.plug_button.setCursor(QCursor(Qt.PointingHandCursor)) self.plug_button.setCheckable(False) self.plug_button.setFlat(True) self.horizontalLayout_3.addWidget(self.plug_button) self.main_layout.addLayout(self.horizontalLayout_3, 3, 1, 1, 1) self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName(u"verticalLayout") self.conf_button = QPushButton(self.main_widget) self.conf_button.setObjectName(u"conf_button") sizePolicy1.setHeightForWidth(self.conf_button.sizePolicy().hasHeightForWidth()) self.conf_button.setSizePolicy(sizePolicy1) self.conf_button.setMinimumSize(QSize(24, 24)) self.conf_button.setFont(font1) self.conf_button.setCursor(QCursor(Qt.PointingHandCursor)) self.conf_button.setCheckable(False) self.conf_button.setFlat(True) self.verticalLayout.addWidget(self.conf_button) self.main_layout.addLayout(self.verticalLayout, 3, 4, 1, 1) MainWindow.setCentralWidget(self.main_widget) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") self.statusbar.setMinimumSize(QSize(600, 0)) MainWindow.setStatusBar(self.statusbar) self.about_widget = QDockWidget(MainWindow) self.about_widget.setObjectName(u"about_widget") self.about_widget.setEnabled(True) sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy3.setHorizontalStretch(0) sizePolicy3.setVerticalStretch(0) sizePolicy3.setHeightForWidth(self.about_widget.sizePolicy().hasHeightForWidth()) self.about_widget.setSizePolicy(sizePolicy3) self.about_widget.setMinimumSize(QSize(600, 600)) self.about_widget.setVisible(True) self.about_widget.setFloating(False) self.about_widget.setFeatures(QDockWidget.DockWidgetClosable|QDockWidget.DockWidgetMovable) self.about_widget.setAllowedAreas(Qt.TopDockWidgetArea) self.about_layout = QWidget() self.about_layout.setObjectName(u"about_layout") sizePolicy3.setHeightForWidth(self.about_layout.sizePolicy().hasHeightForWidth()) self.about_layout.setSizePolicy(sizePolicy3) self.about_layout.setAutoFillBackground(False) self.gridLayout_3 = QGridLayout(self.about_layout) self.gridLayout_3.setObjectName(u"gridLayout_3") self.about_text = QTextEdit(self.about_layout) self.about_text.setObjectName(u"about_text") self.about_text.setFocusPolicy(Qt.WheelFocus) self.about_text.setAcceptDrops(False) self.about_text.setStyleSheet(u"color: white;") self.about_text.setFrameShape(QFrame.StyledPanel) self.about_text.setFrameShadow(QFrame.Sunken) self.about_text.setUndoRedoEnabled(False) self.about_text.setReadOnly(True) self.about_text.setAcceptRichText(True) self.gridLayout_3.addWidget(self.about_text, 0, 0, 1, 1) self.about_widget.setWidget(self.about_layout) MainWindow.addDockWidget(Qt.TopDockWidgetArea, self.about_widget) self.log_widget = QDockWidget(MainWindow) self.log_widget.setObjectName(u"log_widget") self.log_widget.setEnabled(True) self.log_widget.setMinimumSize(QSize(550, 158)) self.log_widget.setFont(font) self.log_widget.setVisible(True) self.log_widget.setFloating(False) self.log_widget.setFeatures(QDockWidget.DockWidgetClosable|QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetMovable) self.log_widget.setAllowedAreas(Qt.BottomDockWidgetArea) self.log_layout = QWidget() self.log_layout.setObjectName(u"log_layout") sizePolicy4 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy4.setHorizontalStretch(0) sizePolicy4.setVerticalStretch(0) sizePolicy4.setHeightForWidth(self.log_layout.sizePolicy().hasHeightForWidth()) self.log_layout.setSizePolicy(sizePolicy4) self.gridLayout_2 = QGridLayout(self.log_layout) self.gridLayout_2.setObjectName(u"gridLayout_2") self.log_content_layout = QVBoxLayout() self.log_content_layout.setObjectName(u"log_content_layout") self.log_content_layout.setSizeConstraint(QLayout.SetDefaultConstraint) self.log_text = QPlainTextEdit(self.log_layout) self.log_text.setObjectName(u"log_text") sizePolicy4.setHeightForWidth(self.log_text.sizePolicy().hasHeightForWidth()) self.log_text.setSizePolicy(sizePolicy4) self.log_text.setMinimumSize(QSize(0, 0)) self.log_text.setAcceptDrops(False) self.log_text.setFrameShape(QFrame.StyledPanel) self.log_text.setFrameShadow(QFrame.Sunken) self.log_text.setUndoRedoEnabled(False) self.log_text.setReadOnly(True) self.log_content_layout.addWidget(self.log_text) self.buttons_layout = QHBoxLayout() self.buttons_layout.setObjectName(u"buttons_layout") self.buttons_layout.setSizeConstraint(QLayout.SetDefaultConstraint) self.log_clear_button = QToolButton(self.log_layout) self.log_clear_button.setObjectName(u"log_clear_button") icon1 = QIcon() icon1.addFile(u"images/delete-sweep_24.png", QSize(), QIcon.Normal, QIcon.Off) self.log_clear_button.setIcon(icon1) self.log_clear_button.setIconSize(QSize(24, 24)) self.buttons_layout.addWidget(self.log_clear_button) self.log_content_layout.addLayout(self.buttons_layout) self.gridLayout_2.addLayout(self.log_content_layout, 0, 0, 1, 1) self.log_widget.setWidget(self.log_layout) MainWindow.addDockWidget(Qt.BottomDockWidgetArea, self.log_widget) self.config_widget = QDockWidget(MainWindow) self.config_widget.setObjectName(u"config_widget") self.config_widget.setEnabled(True) self.config_widget.setMinimumSize(QSize(250, 600)) self.config_widget.setFloating(False) self.config_widget.setFeatures(QDockWidget.DockWidgetClosable|QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetMovable) self.config_widget.setAllowedAreas(Qt.RightDockWidgetArea) self.config_layout = QWidget() self.config_layout.setObjectName(u"config_layout") self.gridLayout = QGridLayout(self.config_layout) self.gridLayout.setObjectName(u"gridLayout") self.config_content_layout = QFormLayout() self.config_content_layout.setObjectName(u"config_content_layout") self.gridLayout.addLayout(self.config_content_layout, 0, 0, 1, 1) self.config_widget.setWidget(self.config_layout) MainWindow.addDockWidget(Qt.RightDockWidgetArea, self.config_widget) self.plugins_widget = QDockWidget(MainWindow) self.plugins_widget.setObjectName(u"plugins_widget") self.plugins_widget.setMinimumSize(QSize(250, 600)) self.plugins_widget.setAllowedAreas(Qt.LeftDockWidgetArea) self.dockWidgetContents = QWidget() self.dockWidgetContents.setObjectName(u"dockWidgetContents") self.plugins_widget.setWidget(self.dockWidgetContents) MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.plugins_widget) self.about_widget.raise_() self.log_widget.raise_() self.retranslateUi(MainWindow) self.usb_status.setDefault(False) QMetaObject.connectSlotsByName(MainWindow)
def __init__(self, heading, parent=None, counter=0, pastResults={}, grid=False): QWidget.__init__(self) self.setParent(parent) self.heading = heading self.counter = counter self.pastResults = pastResults # Set layout and spacings layout = QGridLayout() # The heading of the widget label = QLabel(heading) label.setAlignment(Qt.AlignCenter) label.setFixedHeight(40) # TODO: Change with global themes label.setStyleSheet("color: white;") # Font for the label font = QFont() font.setPixelSize(25) font.setBold(True) label.setFont(font) layout.addWidget(label, 0, 0) # Add back button if self.counter: backButton = QToolButton() backButton.setText("🡸") font = QFont() font.setPointSize(30) backButton.setFont(font) backButton.setFixedSize(QSize(40, 40)) backButton.setAutoRaise(True) backButton.setStyleSheet( "QToolButton { color: white; background-color: transparent;} QToolButton:pressed {background-color: rgba(255, 255, 255, 0.1);}" ) layout.addWidget(backButton, 0, 0) backButton.clicked.connect(self.goBack) # Sub heading if this is an indepth search sublabel = QLabel() sublabel.setFixedHeight(20) if self.pastResults: sublabel.setAlignment(Qt.AlignCenter) # TODO: Change with global themes sublabel.setStyleSheet("color: white;") if "artist_id" in self.pastResults: sublabel.setText("Artist: " + self.pastResults["artist_name"]) elif "language_id" in self.pastResults: sublabel.setText("Language: " + self.pastResults["language_name"]) elif "playlist_id" in self.pastResults: sublabel.setText("Playlist: " + self.pastResults["playlist_name"]) font = QFont() font.setPixelSize(15) font.setItalic(True) sublabel.setFont(font) layout.addWidget(sublabel, 1, 0) # Set searchbar self.searchBar = QLineEdit(self) # TODO: change with resizeEvent self.searchBar.setMinimumWidth(800) font = QFont() font.setPointSize(20) self.searchBar.setFont(font) layout.addWidget(self.searchBar, 2, 0) layout.setAlignment(self.searchBar, Qt.AlignCenter) # Set results page if (grid): self.results = self.ResultsGrid(self) layout.addWidget(self.results, 3, 0) else: self.results = self.ResultsList(self) layout.addWidget(self.results, 3, 0) self.searchBar.textEdited.connect(self.updateResults) self.updateResults() self.setLayout(layout)