def testAddActionWithIcon(self): bar = QToolBar() self._called = False icon = QIcon() a = bar.addAction(icon, "act1", self.callback) a.trigger() self.assert_(self._called)
def create_and_add_toolbar_action( icon_path: str, mouse_over_text: str, trigger_method: classmethod, component_tool_bar: QToolBar, component_tree_view_tab: QWidget, set_enabled: bool = False, ) -> QAction: """ Create a QAction and add it to the component toolbar. :param icon_path: The location of the action icon relative to the "ui" folder. :param mouse_over_text: The text that should appear when the mouse is above the icon. :param trigger_method: The method that should be called when the icon is clicked. :param component_tool_bar: The tool bad that the action is added to. :param component_tree_view_tab: The tab for the component tree view. :param set_enabled: A bool indicating whether or not the action should be enabled immediately after it's been created. Only needs to be true for the Add Component button. :return The new QAction. """ toolbar_action = QAction( QIcon(os.path.join("ui", icon_path)), mouse_over_text, component_tree_view_tab ) toolbar_action.triggered.connect(trigger_method) toolbar_action.setEnabled(set_enabled) component_tool_bar.addAction(toolbar_action) return toolbar_action
def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 WebEngineWidgets Example') self.toolBar = QToolBar() self.addToolBar(self.toolBar) self.backButton = QPushButton() self.backButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/left-32.png')) self.backButton.clicked.connect(self.back) self.toolBar.addWidget(self.backButton) self.forwardButton = QPushButton() self.forwardButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/right-32.png')) self.forwardButton.clicked.connect(self.forward) self.toolBar.addWidget(self.forwardButton) self.addressLineEdit = QLineEdit() self.addressLineEdit.returnPressed.connect(self.load) self.toolBar.addWidget(self.addressLineEdit) self.webEngineView = QWebEngineView() self.setCentralWidget(self.webEngineView) initialUrl = 'http://qt.io/qtws18' self.addressLineEdit.setText(initialUrl) self.webEngineView.load(QUrl(initialUrl)) self.webEngineView.page().titleChanged.connect(self.setWindowTitle) self.webEngineView.page().urlChanged.connect(self.urlChanged)
def __init__(self, parent, file_clicked): super().__init__(parent) self.main_layout = QVBoxLayout() # Tool Bar self.toolbar = QToolBar(self) # delete action on toolbar self.delete_action_tb = QAction("DELETE TABLE ROW", self) self.delete_action_tb.setStatusTip("Obrisi Red U Tabeli") self.delete_action_tb.triggered.connect(self.delete_table_row_tb) self.toolbar.addAction(self.delete_action_tb) # ADD ONE TOOLBAR BUTTON self.add_one_action_tb = QAction("ADD TABLE ROW", self) self.add_one_action_tb.setStatusTip("ADD SINGLE ROW TO TABLE") self.add_one_action_tb.triggered.connect(self.add_table_row_handler) self.toolbar.addAction(self.add_one_action_tb) self.setLayout(self.main_layout) self.file_clicked = file_clicked self.abstract_table_model = AbstractTableModel(self.file_clicked) self.database_type = self.abstract_table_model.database_type self.create_tab_widget() self.check_database_type_and_run() self.tab_widget.addTab(self.main_table, QIcon("img/iconXLNK.png"), self.file_clicked) self.main_layout.addWidget(self.toolbar) self.main_layout.addWidget(self.tab_widget)
def __init__(self, parent=None): super(Main, self).__init__(parent) self.setWindowTitle("Osmapy") # All widgets should be destryed when the main window is closed. This the widgets can use the destroyed widget # to allow clean up. E.g. save the database of the TileLoader. self.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) self.resize(config.config.window_size[0], config.config.window_size[1]) self.elements_loader = ElementsLoader() # Element Viewer as DockWidget self.element_viewer = ElementViewer(self) self.dock_element_viewer = QDockWidget() self.dock_element_viewer.setWindowTitle("Element Viewer") self.dock_element_viewer.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock_element_viewer.setWidget(self.element_viewer) self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dock_element_viewer) # LayerManger as DockWidget self.layer_manager = LayerManager(self) self.dock_layer_manager = QDockWidget() self.dock_layer_manager.setWindowTitle("Layer Manager") self.dock_layer_manager.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock_layer_manager.setWidget(self.layer_manager) self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dock_layer_manager) self.viewer = Viewer.Viewer(self) self.setCentralWidget(self.viewer) self.viewer.setFocus() self.viewer.setFocusPolicy(QtCore.Qt.StrongFocus) self.changeset = Changeset(self) self.changset_form = ChangesetForm(self) self.toolbar = QToolBar() self.toolbar.addAction("Load Elements", self.viewer.load_elements) self.toolbar.addAction("Undo Changes", self.viewer.undo_changes) self.toolbar.addAction("Create Node", partial(self.viewer.change_mode, "new_node")) self.toolbar.addAction("Upload Changes", self.changset_form.show) if os.name == "nt": self.toolbar.addAction( "Open Configuration", partial(os.startfile, str(config.path_config))) elif sys.platform == "darwin": self.toolbar.addAction( "Open Configuration", partial(call, ["open", str(config.path_config)])) else: self.toolbar.addAction( "Open Configuration", partial(call, ["xdg-open", str(config.path_config)])) self.addToolBar(self.toolbar) self.statusBar().showMessage("Welcome to Osmapy!")
def __init__(self): super().__init__() self.setWindowTitle("Organiser") self.mainLayout = QVBoxLayout() # Create menu bar & menus self.fileMenu = self.menuBar().addMenu("&File") self.openMenuAction = self.fileMenu.addAction("&Open") self.openMenuAction.triggered.connect( self.on_open_action) # New-style connect! self.fileMenu.addSeparator() self.setPreferencesMenuAction = self.fileMenu.addAction( "Set Preferences") self.setPreferencesMenuAction.triggered.connect( self.on_set_preferences_action) self.fileMenu.addSeparator() self.quitMenuAction = self.fileMenu.addAction("&Quit") self.quitMenuAction.triggered.connect(self.on_quit_action) # Create main toolbar self.mainToolBar = QToolBar() self.mainToolBar.setMovable(False) self.addItemToolButton = self.mainToolBar.addAction( QIcon("./mainToolbarIcons/Gnome-item-add.svg"), "Add new item" ) # Icons from https://commons.wikimedia.org/wiki/GNOME_Desktop_icons self.addItemToolButton.triggered.connect(self.on_insert_item_action) self.addChildItemToolButton = self.mainToolBar.addAction( QIcon("./mainToolbarIcons/Gnome-item-add-child.svg"), "Add child item") self.addChildItemToolButton.triggered.connect( self.on_insert_child_item_action) self.mainLayout.addWidget(self.mainToolBar) # Configure window splitter self.splitter = QSplitter() self.splitter.setHandleWidth(2) # Configure item tree widget self.itemTree = ItemTree() self.splitter.addWidget(self.itemTree) self.splitter.addWidget(self.itemTree.editBox) self.mainLayout.addWidget(self.splitter) # Is a status bar needed in this application? #self.statusBar = QStatusBar() #self.mainLayout.addWidget(self.statusBar) # Set layout as the central widget self.mainWidget = QWidget() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) # TEST ONLY self.uniqueCounter = 0 return
def _init_tool_bar(self): """ Creates the main toolbar with all its content """ self.toolbar = QToolBar() self.toolbar.setFixedHeight(70) self.toolbar.addWidget(self.clear_btn) self.toolbar.addWidget(self.serial_in)
def _createToolBars(self): # Using a title fileToolBar = self.addToolBar("File") # Using a QToolBar object editToolBar = QToolBar("Edit", self) self.addToolBar(editToolBar) # Using a QToolBar object and a toolbar area helpToolBar = QToolBar("Help", self) self.addToolBar(Qt.LeftToolBarArea, helpToolBar)
def __init__(self): super().__init__() self.__ui = Ui_MainWindow() self.__ui.setupUi(self) self.__ui.action_Exit.triggered.connect(self.exit) toolBar = QToolBar() self.addToolBar(Qt.LeftToolBarArea, toolBar) toolBar.addAction(self.__ui.action_Exit)
def testToolBar(self): self._actionDestroyed = False w = QWidget() toolBar = QToolBar(w) act = toolBar.addAction("MENU") _ref = weakref.ref(act, self.actionDestroyed) act = None self.assertFalse(self._actionDestroyed) toolBar.clear() self.assertTrue(self._actionDestroyed)
def __init__(self): """ Toolbar for the attributes list side panel tab """ QToolBar.__init__(self) self.add_widget = ViewAddAttributeWidget() self.addWidget(self.add_widget) self.__set_style()
def __init__(self, title, labels=[], data=[], table_name="", field_name="", parent=None): super().__init__(parent) self._title = title self._labels = labels self._data = data self._last_column = excelColumnFromNumber(len(self._data)) self._plot_location = excelColumnFromNumber(len(self._data)+2) self.setWindowTitle(self._title) self._figure = plt.figure(figsize=(5, 4), dpi=100, facecolor=(1,1,1), edgecolor=(0,0,0)) self.ax = self._figure.add_subplot() self.ax.set_title(self._title) self._canvas = FigureCanvas(self._figure) self._navigation_toolbar = NavigationToolbar(self._canvas, None) self.addToolBar(self._navigation_toolbar) self._bottom_toolbar = QToolBar(self) self._bottom_toolbar.setMovable(False) self._bottom_toolbar.setFloatable(False) self._bottom_toolbar.setStyleSheet("QToolBar {border-bottom: None; border-top: 1px solid #BBBBBB;}") self._table_name_label = QLabel(" Table:") self._field_name_label = QLabel(" Field:") self._table_name = FormEntry(self) self._table_name.setMaximumHeight(20) self._field_name = FormEntry(self) self._field_name.setMaximumHeight(20) self._table_name.setReadOnly(True) self._field_name.setReadOnly(True) self._table_name.setText(table_name) self._field_name.setText(field_name) self._bottom_toolbar.addWidget(self._table_name_label) self._bottom_toolbar.addWidget(self._table_name) self._bottom_toolbar.addWidget(self._field_name_label) self._bottom_toolbar.addWidget(self._field_name) self._export_chart_button = QPushButton("Export") self._export_chart_button.setIcon(QIcon(QPixmap("export.png"))) self._export_chart_button.clicked.connect(self.exportChart) self._bottom_toolbar.addWidget(HorizontalFiller(self)) self._bottom_toolbar.addWidget(self._export_chart_button) self.addToolBar(Qt.BottomToolBarArea, self._bottom_toolbar) y_pos = np.arange(len(data)) self.ax.barh(y_pos, data, align="center", color='lightskyblue', alpha=0.5) self.ax.set_xlabel(labels[len(labels)-1]) #self.ax.set_ylabel(labels[1]) rects = self.ax.patches low_rect = rects[0] high_rect = rects[len(rects)-1] width = low_rect.get_width() self.ax.text(low_rect.get_x()+width, low_rect.get_y()+1, "Lowest: $"+str(data[0])) width = high_rect.get_width() self.ax.text(high_rect.get_x(), high_rect.get_y()+1, "Highest: $"+str(data[len(data)-1])) self.setCentralWidget(self._canvas)
def create_toolbar(self): self.toolbar = QToolBar(self.tr("Tools"), self) self.toolbar.setStatusTip(self.tr("Tools")) self.toolbar.addActions([ self.new_action, self.open_action, self.save_action, self.save_as_action, self.exit_action, ]) self.toolbar.addSeparator() self.toolbar.addAction(self.about_action)
def __init__(self): super(MainWindow, self).__init__() self.cameraInfo = QCameraInfo.defaultCamera() self.camera = QCamera(self.cameraInfo) self.camera.setCaptureMode(QCamera.CaptureStillImage) self.imageCapture = QCameraImageCapture(self.camera) self.imageCapture.imageCaptured.connect(self.imageCaptured) self.imageCapture.imageSaved.connect(self.imageSaved) self.currentPreview = QImage() toolBar = QToolBar() self.addToolBar(toolBar) fileMenu = self.menuBar().addMenu("&File") shutterIcon = QIcon( os.path.join(os.path.dirname(__file__), "shutter.svg")) self.takePictureAction = QAction(shutterIcon, "&Take Picture", self, shortcut="Ctrl+T", triggered=self.takePicture) self.takePictureAction.setToolTip("Take Picture") fileMenu.addAction(self.takePictureAction) toolBar.addAction(self.takePictureAction) exitAction = QAction(QIcon.fromTheme("application-exit"), "E&xit", self, shortcut="Ctrl+Q", triggered=self.close) fileMenu.addAction(exitAction) aboutMenu = self.menuBar().addMenu("&About") aboutQtAction = QAction("About &Qt", self, triggered=qApp.aboutQt) aboutMenu.addAction(aboutQtAction) self.tabWidget = QTabWidget() self.setCentralWidget(self.tabWidget) self.cameraViewfinder = QCameraViewfinder() self.camera.setViewfinder(self.cameraViewfinder) self.tabWidget.addTab(self.cameraViewfinder, "Viewfinder") if self.camera.status() != QCamera.UnavailableStatus: name = self.cameraInfo.description() self.setWindowTitle("PySide2 Camera Example (" + name + ")") self.statusBar().showMessage("Starting: '" + name + "'", 5000) self.camera.start() else: self.setWindowTitle("PySide2 Camera Example") self.takePictureAction.setEnabled(False) self.statusBar().showMessage("Camera unavailable", 5000)
def __init__(self): QToolBar.__init__(self) self.back = QPushButton("back") self.next = QPushButton("next") self.reload = QPushButton("reload") self.url_box = QLineEdit(self) self.url_box.setClearButtonEnabled(True) self.addWidget(self.back) self.addWidget(self.next) self.addWidget(self.reload) self.addWidget(self.url_box)
def __SetupUI(self): self.__mainWidget = QWidget() self.setCentralWidget(self.__mainWidget) self.__fileToolBar = QToolBar("File") self.addToolBar(self.__fileToolBar) self.__translateToolBar = QToolBar("Translate") self.addToolBar(self.__translateToolBar) self.__statusBar = QStatusBar() self.setStatusBar(self.__statusBar) self.setWindowIcon(QIcon("./image/translate.png"))
def __init__(self): super().__init__() # Resolução do monitor. screen_size = app.primaryScreen().geometry() width = screen_size.width() height = screen_size.height() # Tamanho inicial da janela. self.resize(int(width / 2), int(height / 2)) # Tamanho mínimo da janela. self.setMinimumSize(int(width / 3), int(height / 3)) # Título da janela. self.setWindowTitle('PySide2 QToolBar()') # Ícone da janela principal icon = QIcon() icon.addPixmap(QPixmap('../../assets/icons/icon.png')) self.setWindowIcon(icon) # Toolbar pode ser movido para diversas áreas da janela. tool_bar = QToolBar() tool_bar.setToolTip('Barra de ferramentas') self.addToolBar(tool_bar) icon_copy = QIcon('../../assets/icons/copy-64x64.png') tool_bar.addAction(icon_copy, 'Copiar', self.action_copy).setToolTip('Copiar') icon_paste = QIcon('../../assets/icons/paste-64x64.png') tool_bar.addAction(icon_paste, 'Colar', self.action_paste).setToolTip('Colar')
class FontColorButton(QPushButton): """ Displays the currently selected color and provides an icon for indicating what is being colored """ def __init__(self, icon: QIcon, s: str): super().__init__() self._lo = QHBoxLayout() self._filler = QToolBar() self._filler.addAction(icon, s) self._filler.setMaximumHeight(25) self._filler.setMaximumWidth(25) self._filler.setStyleSheet(""" QWidget { border: 0px } """) self._filler.actionTriggered.connect(lambda _: self.pressed.emit()) self._lo.addWidget(self._filler) self._lo.setSpacing(0) self.setMaximumWidth(40) self._color_display = QLabel("") self._color_display.setMinimumWidth(8) self._lo.addWidget(self._color_display) self.setLayout(self._lo) self._lo.setMargin(3) def set_color_display(self, color: QColor): self._color_display.setStyleSheet( "border-radius: 2px; background-color: {};".format(color.name()))
def __init__(self, title, labels=[], data=[], table_name="", field_name="", x_label=None, y_label=None, parent=None, already_sorted=False): super().__init__(parent) self._title = title self._labels = labels self._data = data self._last_column = excelColumnFromNumber(len(self._data)) self._plot_location = excelColumnFromNumber(len(self._data)+2) self._x_label = x_label self._y_label = y_label self._already_sorted = already_sorted self.setWindowTitle(self._title) self._figure = plt.figure(figsize=(5, 4), dpi=100, facecolor=(1,1,1), edgecolor=(0,0,0)) self.ax = self._figure.add_subplot() self.ax.set_title(self._title) self._canvas = FigureCanvas(self._figure) self._navigation_toolbar = NavigationToolbar(self._canvas, None) self.addToolBar(self._navigation_toolbar) self._bottom_toolbar = QToolBar(self) self._bottom_toolbar.setMovable(False) self._bottom_toolbar.setFloatable(False) self._bottom_toolbar.setStyleSheet("QToolBar {border-bottom: None; border-top: 1px solid #BBBBBB;}") self._table_name_label = QLabel(" Table:") self._field_name_label = QLabel(" Field:") self._table_name = FormEntry(self) self._table_name.setMaximumHeight(20) self._field_name = FormEntry(self) self._field_name.setMaximumHeight(20) self._table_name.setReadOnly(True) self._field_name.setReadOnly(True) self._table_name.setText(table_name) self._field_name.setText(field_name) self._bottom_toolbar.addWidget(self._table_name_label) self._bottom_toolbar.addWidget(self._table_name) self._bottom_toolbar.addWidget(self._field_name_label) self._bottom_toolbar.addWidget(self._field_name) self._export_chart_button = QPushButton("Export") self._export_chart_button.setIcon(QIcon(QPixmap("export.png"))) self._export_chart_button.clicked.connect(self.exportChart) self._bottom_toolbar.addWidget(HorizontalFiller(self)) self._bottom_toolbar.addWidget(self._export_chart_button) self.addToolBar(Qt.BottomToolBarArea, self._bottom_toolbar) self.ax.bar(self._labels, self._data) if self._x_label != None: self.ax.set_xlabel(self._x_label) if self._y_label != None: self.ax.set_ylabel(self._y_label) self.setCentralWidget(self._canvas)
def Menu(self): #this creates an action exit, a shortcut and status tip exitAction = QAction(QIcon('icons/exit.png'), '&Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('Exit application') exitAction.triggered.connect(self.close) openFile = QAction(QIcon('icons/open.png'), '&Open', self) openFile.setShortcut('Ctrl+O') openFile.setStatusTip('Open new File') openFile.triggered.connect(self.browse) runAction = QAction(QIcon('icons/run.png'), '&Run', self) runAction.setShortcut('Ctrl+R') runAction.setStatusTip('Run Mars') runAction.triggered.connect(self.run_event) resetAction = QAction(QIcon('icons/reset.png'), '&Reset', self) resetAction.setShortcut('Ctrl+X') resetAction.setStatusTip('Reset Mars') resetAction.triggered.connect(self.reset) #create status bar to show tooltip statusbar = QStatusBar(self) self.setStatusBar(statusbar) #create menu self.menu_File = QMenu('&File', self) self.menuBar().addMenu(self.menu_File) self.menu_File.addAction(openFile) self.menu_File.addAction(runAction) self.menu_File.addAction(resetAction) self.menu_File.addSeparator() self.menu_File.addAction(exitAction) #create toolbar self.toolbar = QToolBar("Toolbar", self) self.toolbar.addAction(openFile) self.toolbar.addAction(runAction) self.toolbar.addAction(resetAction) self.toolbar.addSeparator() # self.toolbar.move(5, 5) self.toolbar2 = QToolBar("ToolbarExit", self) self.toolbar2.addAction(exitAction) self.toto = QFrame(self) self.toto.setFrameShape(QFrame.HLine) self.toto.setFrameShadow(QFrame.Sunken) self.toto.setLineWidth(2)
def qtoolbar(self): if self._cached is not None: return self._cached toolbar = QToolBar(self.name, self.window) for action in self.actions: act = self._translate_element(toolbar, action) if act is not None: self._cached_actions.append(act) toolbar.setIconSize(QSize(16, 16)) self._cached = toolbar return toolbar
def __init__(self): super().__init__() self.setWindowFlags(Qt.FramelessWindowHint) #self.setAttribute(Qt.WA_TranslucentBackground, True) self.setFixedSize(601, 401) self.toolbar_selected = False self.toolbar = QToolBar() self.toolbar.setObjectName("toolbar") self.toolbar.setMovable(False) self.toolbar.setFloatable(False) self.toolbar.setContextMenuPolicy( Qt.PreventContextMenu) # no right-click on toolbar self.addToolBar(self.toolbar) self.toolbar.setStyleSheet("background-color: khaki") self.admin_btn = QPushButton("Admin", self) self.admin_btn.setObjectName("admin_btn") self.admin_btn.setFixedSize(65, 30) self.info_btn = QPushButton("Info", self) self.info_btn.setObjectName("info_btn") self.info_btn.setFixedSize(35, 30) self.spacer = QWidget() self.spacer.setObjectName("toolbar_spacer") self.spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.toolbar_label = QLabel("") self.toolbar_label.setObjectName("toolbar_label") self.toolbar_label.setAlignment(Qt.AlignCenter) self.toolbar_label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.close_btn = QPushButton(" X") self.close_btn.setObjectName("close_btn") self.close_btn.setFixedSize(30, 30) self.toolbar.addWidget(self.admin_btn) # self.toolbar.addWidget(self.spacer) self.toolbar.addWidget(self.toolbar_label) # self.toolbar.addWidget(self.spacer) self.toolbar.addWidget(self.info_btn) self.toolbar.addWidget(self.close_btn) self.toolbar_label.mousePressEvent = self.mousePressEvent # to move window self.mousePressEvent = self.mousePressEvent_ # to check if window content is selected or not self.close_btn.pressed.connect(self.close_window)
def __init__(self): super(MainWindow, self).__init__() self.cameraInfo = QCameraInfo.defaultCamera() self.camera = QCamera(self.cameraInfo) self.camera.setCaptureMode(QCamera.CaptureStillImage) self.imageCapture = QCameraImageCapture(self.camera) self.imageCapture.imageCaptured.connect(self.imageCaptured) self.imageCapture.imageSaved.connect(self.imageSaved) self.currentPreview = QImage() toolBar = QToolBar() self.addToolBar(toolBar) fileMenu = self.menuBar().addMenu("&File") shutterIcon = QIcon(os.path.join(os.path.dirname(__file__), "shutter.svg")) self.takePictureAction = QAction(shutterIcon, "&Take Picture", self, shortcut="Ctrl+T", triggered=self.takePicture) self.takePictureAction.setToolTip("Take Picture") fileMenu.addAction(self.takePictureAction) toolBar.addAction(self.takePictureAction) exitAction = QAction(QIcon.fromTheme("application-exit"), "E&xit", self, shortcut="Ctrl+Q", triggered=self.close) fileMenu.addAction(exitAction) aboutMenu = self.menuBar().addMenu("&About") aboutQtAction = QAction("About &Qt", self, triggered=qApp.aboutQt) aboutMenu.addAction(aboutQtAction) self.tabWidget = QTabWidget() self.setCentralWidget(self.tabWidget) self.cameraViewfinder = QCameraViewfinder() self.camera.setViewfinder(self.cameraViewfinder) self.tabWidget.addTab(self.cameraViewfinder, "Viewfinder") if self.camera.status() != QCamera.UnavailableStatus: name = self.cameraInfo.description() self.setWindowTitle("PySide2 Camera Example (" + name + ")") self.statusBar().showMessage("Starting: '" + name + "'", 5000) self.camera.start() else: self.setWindowTitle("PySide2 Camera Example") self.takePictureAction.setEnabled(False) self.statusBar().showMessage("Camera unavailable", 5000)
def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 WebEngineWidgets Example') self.toolBar = QToolBar() self.addToolBar(self.toolBar) self.backButton = QPushButton() self.backButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/left-32.png')) self.backButton.clicked.connect(self.back) self.toolBar.addWidget(self.backButton) self.forwardButton = QPushButton() self.forwardButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/right-32.png')) self.forwardButton.clicked.connect(self.forward) self.toolBar.addWidget(self.forwardButton) self.addressLineEdit = QLineEdit() self.addressLineEdit.returnPressed.connect(self.load) self.toolBar.addWidget(self.addressLineEdit) self.webEngineView = QWebEngineView() self.setCentralWidget(self.webEngineView) initialUrl = 'http://qt.io' self.addressLineEdit.setText(initialUrl) self.webEngineView.load(QUrl(initialUrl)) self.webEngineView.page().titleChanged.connect(self.setWindowTitle) self.webEngineView.page().urlChanged.connect(self.urlChanged)
def __init__(self): super(MainWindow, self).__init__() toolBar = QToolBar() self.addToolBar(toolBar) fileMenu = self.menuBar().addMenu("&File") loadAction = QAction("Load...", self, shortcut="Ctrl+L", triggered=self.load) fileMenu.addAction(loadAction) toolBar.addAction(loadAction) exitAction = QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) fileMenu.addAction(exitAction) aboutMenu = self.menuBar().addMenu("&About") aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt) aboutMenu.addAction(aboutQtAct) self.axWidget = QAxWidget() self.setCentralWidget(self.axWidget)
def _init_tool_bar(self): """ Creates the main toolbar with all its content """ self.toolbar = QToolBar() self.toolbar.setFixedHeight(70) self.toolbar.addWidget(self.to_dr_btn) self.toolbar.addWidget(self.from_dr_btn) self.toolbar.addSeparator() self.toolbar.addWidget(self.firmware_btn) self.toolbar.addSeparator() self.toolbar.addWidget(self.lab_port) self.toolbar.addWidget(self.usb_combo) self.toolbar.addWidget(self.refresh_btn)
def __init__(self): super().__init__() self.setWindowTitle("My App") label = QLabel("Hello!") label.setAlignment(Qt.AlignCenter) self.setCentralWidget(label) toolbar = QToolBar("My main toolbar") self.addToolBar(toolbar) button_action = QAction("Your button", self) button_action.setStatusTip("This is your button") button_action.triggered.connect(self.onMyToolBarButtonClick) toolbar.addAction(button_action)
def __init__(self, parent=None): """Class constructor. Args: parent (QWidget): the widget's parent """ super().__init__(parent) self.option = QStyleOptionMenuItem() zoom_action = QAction("Zoom") QMenu(parent).initStyleOption(self.option, zoom_action) layout = QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) tool_bar = QToolBar(self) tool_bar.setFixedHeight(self.option.rect.height()) minus_action = tool_bar.addAction("-") reset_action = tool_bar.addAction("Reset") plus_action = tool_bar.addAction("+") layout.addSpacing(self.option.rect.width()) layout.addWidget(tool_bar) minus_action.setToolTip("Zoom out") reset_action.setToolTip("Reset zoom") plus_action.setToolTip("Zoom in") minus_action.triggered.connect(lambda x: self.minus_pressed.emit()) plus_action.triggered.connect(lambda x: self.plus_pressed.emit()) reset_action.triggered.connect(lambda x: self.reset_pressed.emit())
def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 tabbed browser Example') self._tab_widget = BrowserTabWidget(create_main_window_with_browser) self._tab_widget.enabled_changed.connect(self._enabled_changed) self._tab_widget.download_requested.connect(self._download_requested) self.setCentralWidget(self._tab_widget) self.connect(self._tab_widget, QtCore.SIGNAL("url_changed(QUrl)"), self.url_changed) self._bookmark_dock = QDockWidget() self._bookmark_dock.setWindowTitle('Bookmarks') self._bookmark_widget = BookmarkWidget() self._bookmark_widget.open_bookmark.connect(self.load_url) self._bookmark_widget.open_bookmark_in_new_tab.connect( self.load_url_in_new_tab) self._bookmark_dock.setWidget(self._bookmark_widget) self.addDockWidget(Qt.LeftDockWidgetArea, self._bookmark_dock) self._find_tool_bar = None self._actions = {} self._create_menu() self._tool_bar = QToolBar() self.addToolBar(self._tool_bar) for action in self._actions.values(): if not action.icon().isNull(): self._tool_bar.addAction(action) self._addres_line_edit = QLineEdit() self._addres_line_edit.setClearButtonEnabled(True) self._addres_line_edit.returnPressed.connect(self.load) self._tool_bar.addWidget(self._addres_line_edit) self._zoom_label = QLabel() self.statusBar().addPermanentWidget(self._zoom_label) self._update_zoom_label() self._bookmarksToolBar = QToolBar() self.addToolBar(Qt.TopToolBarArea, self._bookmarksToolBar) self.insertToolBarBreak(self._bookmarksToolBar) self._bookmark_widget.changed.connect(self._update_bookmarks) self._update_bookmarks()
def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.available_cameras = QCameraInfo.availableCameras() if not self.available_cameras: pass #quit self.status = QStatusBar() self.setStatusBar(self.status) self.save_path = "" self.viewfinder = QCameraViewfinder() self.viewfinder.show() self.setCentralWidget(self.viewfinder) # Set the default camera. self.select_camera(0) # Setup tools camera_toolbar = QToolBar("Camera") camera_toolbar.setIconSize(QSize(14, 14)) self.addToolBar(camera_toolbar) photo_action = QAction(QIcon(os.path.join('images', 'camera-black.png')), "Take photo...", self) photo_action.setStatusTip("Take photo of current view") photo_action.triggered.connect(self.take_photo) camera_toolbar.addAction(photo_action) change_folder_action = QAction(QIcon(os.path.join('images', 'blue-folder-horizontal-open.png')), "Change save location...", self) change_folder_action.setStatusTip("Change folder where photos are saved.") change_folder_action.triggered.connect(self.change_folder) camera_toolbar.addAction(change_folder_action) camera_selector = QComboBox() camera_selector.addItems([c.description() for c in self.available_cameras]) camera_selector.currentIndexChanged.connect( self.select_camera ) camera_toolbar.addWidget(camera_selector) self.setWindowTitle("NSAViewer") self.show()
def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 Tabbed Browser Example') self._tabWidget = BrowserTabWidget(createMainWindowWithBrowser) self._tabWidget.enabledChanged.connect(self._enabledChanged) self._tabWidget.downloadRequested.connect(self._downloadRequested) self.setCentralWidget(self._tabWidget) self.connect(self._tabWidget, QtCore.SIGNAL("urlChanged(QUrl)"), self.urlChanged) self._bookmarkDock = QDockWidget() self._bookmarkDock.setWindowTitle('Bookmarks') self._bookmarkWidget = BookmarkWidget() self._bookmarkWidget.openBookmark.connect(self.loadUrl) self._bookmarkWidget.openBookmarkInNewTab.connect(self.loadUrlInNewTab) self._bookmarkDock.setWidget(self._bookmarkWidget) self.addDockWidget(Qt.LeftDockWidgetArea, self._bookmarkDock) self._findToolBar = None self._actions = {} self._createMenu() self._toolBar = QToolBar() self.addToolBar(self._toolBar) for action in self._actions.values(): if not action.icon().isNull(): self._toolBar.addAction(action) self._addressLineEdit = QLineEdit() self._addressLineEdit.setClearButtonEnabled(True) self._addressLineEdit.returnPressed.connect(self.load) self._toolBar.addWidget(self._addressLineEdit) self._zoomLabel = QLabel() self.statusBar().addPermanentWidget(self._zoomLabel) self._updateZoomLabel() self._bookmarksToolBar = QToolBar() self.addToolBar(Qt.TopToolBarArea, self._bookmarksToolBar) self.insertToolBarBreak(self._bookmarksToolBar) self._bookmarkWidget.changed.connect(self._updateBookmarks) self._updateBookmarks()
def _createUI(self): self._menubar = QMenuBar(self) self._toolBar = QToolBar(self) self._createImmoCenterMenu() self._createMietobjektMenu() self._createMietverhaeltnisMenu() self._createZahlungenMenu() self._createAbrechnungenMenu() self._createAnlageVMenu() self._createExtrasMenu() self._createSqlMenu() self._createShowViewsMenu() self._toolBar.addSeparator() lbl = QLabel(self, text="Letzte verarbeitete Buchung: ") self._toolBar.addWidget(lbl) self._sdLetzteBuchung.setToolTip( "Freier Eintrag der Kenndaten der letzten Buchung,\n " "um beim nächsten Anwendungsstart gezielt weiterarbeiten zu können." ) self._sdLetzteBuchung.setMaximumWidth(90) self._toolBar.addWidget(self._sdLetzteBuchung) dummy = QWidget() dummy.setFixedWidth(5) self._toolBar.addWidget(dummy) self._leLetzteBuchung.setToolTip( "Freier Eintrag der Kenndaten der letzten Buchung,\n " "um beim nächsten Anwendungsstart gezielt weiterarbeiten zu können." ) # self._leLetzteBuchung.setMaximumWidth( 300 ) self._toolBar.addWidget(self._leLetzteBuchung) dummy = QWidget() dummy.setFixedWidth(30) #dummy.setSizePolicy( QSizePolicy.Expanding, QSizePolicy.Preferred ) self._toolBar.addWidget(dummy) self._addSumFields() self.setMenuBar(self._menubar) self.addToolBar(QtCore.Qt.TopToolBarArea, self._toolBar)
def __init__(self, parent): super(BlockViewer, self).__init__(parent, "Block Viewer") self._object_set = 0 self.sprite_bank = BlockBank(parent=self) self.setCentralWidget(self.sprite_bank) self.toolbar = QToolBar(self) self.prev_os_action = self.toolbar.addAction(icon("arrow-left.svg"), "Previous object set") self.prev_os_action.triggered.connect(self.prev_object_set) self.next_os_action = self.toolbar.addAction(icon("arrow-right.svg"), "Next object set") self.next_os_action.triggered.connect(self.next_object_set) self.zoom_out_action = self.toolbar.addAction(icon("zoom-out.svg"), "Zoom Out") self.zoom_out_action.triggered.connect(self.sprite_bank.zoom_out) self.zoom_in_action = self.toolbar.addAction(icon("zoom-in.svg"), "Zoom In") self.zoom_in_action.triggered.connect(self.sprite_bank.zoom_in) self.bank_dropdown = QComboBox(parent=self.toolbar) self.bank_dropdown.addItems(OBJECT_SET_ITEMS) self.bank_dropdown.setCurrentIndex(0) self.bank_dropdown.currentIndexChanged.connect(self.on_combo) self.palette_group_spinner = Spinner(self, maximum=PALETTE_GROUPS_PER_OBJECT_SET - 1, base=10) self.palette_group_spinner.valueChanged.connect(self.on_palette) self.toolbar.addWidget(self.bank_dropdown) self.toolbar.addWidget(QLabel(" Object Palette: ")) self.toolbar.addWidget(self.palette_group_spinner) self.addToolBar(self.toolbar) self.layout().setSizeConstraint(QLayout.SetFixedSize) self.setStatusBar(QStatusBar(self)) return
class AddActionText(UsesQApplication): '''Test case for calling QToolbar.addAction passing a text''' def setUp(self): #Acquire resources super(AddActionText, self).setUp() self.window = QMainWindow() self.toolbar = QToolBar() self.window.addToolBar(self.toolbar) def tearDown(self): #Release resources super(AddActionText, self).tearDown() del self.toolbar del self.window def testText(self): #QToolBar.addAction(text) - add a QToolButton self.toolbar.addAction('aaaa') self.assertEqual(len(self.toolbar.actions()), 1) action = self.toolbar.actions()[0] self.assert_(isinstance(action, QAction)) self.assertEqual(action.text(), 'aaaa')
def testReference(self): toolbar = QToolBar() for i in xrange(20): toolbar.addAction(QAction("Action %d" % i, None)) buttons = toolbar.findChildren(QToolButton, "") toolbar.clear() for b in buttons: self.assertRaises(RuntimeError, b.objectName)
def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 tabbed browser Example') self._tab_widget = BrowserTabWidget(create_main_window_with_browser) self._tab_widget.enabled_changed.connect(self._enabled_changed) self._tab_widget.download_requested.connect(self._download_requested) self.setCentralWidget(self._tab_widget) self.connect(self._tab_widget, QtCore.SIGNAL("url_changed(QUrl)"), self.url_changed) self._bookmark_dock = QDockWidget() self._bookmark_dock.setWindowTitle('Bookmarks') self._bookmark_widget = BookmarkWidget() self._bookmark_widget.open_bookmark.connect(self.load_url) self._bookmark_widget.open_bookmark_in_new_tab.connect(self.load_url_in_new_tab) self._bookmark_dock.setWidget(self._bookmark_widget) self.addDockWidget(Qt.LeftDockWidgetArea, self._bookmark_dock) self._find_tool_bar = None self._actions = {} self._create_menu() self._tool_bar = QToolBar() self.addToolBar(self._tool_bar) for action in self._actions.values(): if not action.icon().isNull(): self._tool_bar.addAction(action) self._addres_line_edit = QLineEdit() self._addres_line_edit.setClearButtonEnabled(True) self._addres_line_edit.returnPressed.connect(self.load) self._tool_bar.addWidget(self._addres_line_edit) self._zoom_label = QLabel() self.statusBar().addPermanentWidget(self._zoom_label) self._update_zoom_label() self._bookmarksToolBar = QToolBar() self.addToolBar(Qt.TopToolBarArea, self._bookmarksToolBar) self.insertToolBarBreak(self._bookmarksToolBar) self._bookmark_widget.changed.connect(self._update_bookmarks) self._update_bookmarks()
class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 WebEngineWidgets Example') self.toolBar = QToolBar() self.addToolBar(self.toolBar) self.backButton = QPushButton() self.backButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/left-32.png')) self.backButton.clicked.connect(self.back) self.toolBar.addWidget(self.backButton) self.forwardButton = QPushButton() self.forwardButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/right-32.png')) self.forwardButton.clicked.connect(self.forward) self.toolBar.addWidget(self.forwardButton) self.addressLineEdit = QLineEdit() self.addressLineEdit.returnPressed.connect(self.load) self.toolBar.addWidget(self.addressLineEdit) self.webEngineView = QWebEngineView() self.setCentralWidget(self.webEngineView) initialUrl = 'http://qt.io' self.addressLineEdit.setText(initialUrl) self.webEngineView.load(QUrl(initialUrl)) self.webEngineView.page().titleChanged.connect(self.setWindowTitle) self.webEngineView.page().urlChanged.connect(self.urlChanged) def load(self): url = QUrl.fromUserInput(self.addressLineEdit.text()) if url.isValid(): self.webEngineView.load(url) def back(self): self.webEngineView.page().triggerAction(QWebEnginePage.Back) def forward(self): self.webEngineView.page().triggerAction(QWebEnginePage.Forward) def urlChanged(self, url): self.addressLineEdit.setText(url.toString())
def testAddAction(self): bar = QToolBar() self._called = False a = bar.addAction("act1", self.callback) a.trigger() self.assert_(self._called)
def setUp(self): #Acquire resources super(AddActionText, self).setUp() self.window = QMainWindow() self.toolbar = QToolBar() self.window.addToolBar(self.toolbar)
def __init__(self): super(MainWindow, self).__init__() self.playlist = QMediaPlaylist() self.player = QMediaPlayer() toolBar = QToolBar() self.addToolBar(toolBar) fileMenu = self.menuBar().addMenu("&File") openAction = QAction(QIcon.fromTheme("document-open"), "&Open...", self, shortcut=QKeySequence.Open, triggered=self.open) fileMenu.addAction(openAction) exitAction = QAction(QIcon.fromTheme("application-exit"), "E&xit", self, shortcut="Ctrl+Q", triggered=self.close) fileMenu.addAction(exitAction) playMenu = self.menuBar().addMenu("&Play") playIcon = self.style().standardIcon(QStyle.SP_MediaPlay) self.playAction = toolBar.addAction(playIcon, "Play") self.playAction.triggered.connect(self.player.play) playMenu.addAction(self.playAction) previousIcon = self.style().standardIcon(QStyle.SP_MediaSkipBackward) self.previousAction = toolBar.addAction(previousIcon, "Previous") self.previousAction.triggered.connect(self.previousClicked) playMenu.addAction(self.previousAction) pauseIcon = self.style().standardIcon(QStyle.SP_MediaPause) self.pauseAction = toolBar.addAction(pauseIcon, "Pause") self.pauseAction.triggered.connect(self.player.pause) playMenu.addAction(self.pauseAction) nextIcon = self.style().standardIcon(QStyle.SP_MediaSkipForward) self.nextAction = toolBar.addAction(nextIcon, "Next") self.nextAction.triggered.connect(self.playlist.next) playMenu.addAction(self.nextAction) stopIcon = self.style().standardIcon(QStyle.SP_MediaStop) self.stopAction = toolBar.addAction(stopIcon, "Stop") self.stopAction.triggered.connect(self.player.stop) playMenu.addAction(self.stopAction) self.volumeSlider = QSlider() self.volumeSlider.setOrientation(Qt.Horizontal) self.volumeSlider.setMinimum(0) self.volumeSlider.setMaximum(100) self.volumeSlider.setFixedWidth(app.desktop().availableGeometry(self).width() / 10) self.volumeSlider.setValue(self.player.volume()) self.volumeSlider.setTickInterval(10) self.volumeSlider.setTickPosition(QSlider.TicksBelow) self.volumeSlider.setToolTip("Volume") self.volumeSlider.valueChanged.connect(self.player.setVolume) toolBar.addWidget(self.volumeSlider) aboutMenu = self.menuBar().addMenu("&About") aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt) aboutMenu.addAction(aboutQtAct) self.videoWidget = QVideoWidget() self.setCentralWidget(self.videoWidget) self.player.setPlaylist(self.playlist) self.player.stateChanged.connect(self.updateButtons) self.player.setVideoOutput(self.videoWidget) self.updateButtons(self.player.state())
class MainWindow(QMainWindow): """Provides the parent window that includes the BookmarkWidget, BrowserTabWidget, and a DownloadWidget, to offer the complete web browsing experience.""" def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('PySide2 tabbed browser Example') self._tab_widget = BrowserTabWidget(create_main_window_with_browser) self._tab_widget.enabled_changed.connect(self._enabled_changed) self._tab_widget.download_requested.connect(self._download_requested) self.setCentralWidget(self._tab_widget) self.connect(self._tab_widget, QtCore.SIGNAL("url_changed(QUrl)"), self.url_changed) self._bookmark_dock = QDockWidget() self._bookmark_dock.setWindowTitle('Bookmarks') self._bookmark_widget = BookmarkWidget() self._bookmark_widget.open_bookmark.connect(self.load_url) self._bookmark_widget.open_bookmark_in_new_tab.connect(self.load_url_in_new_tab) self._bookmark_dock.setWidget(self._bookmark_widget) self.addDockWidget(Qt.LeftDockWidgetArea, self._bookmark_dock) self._find_tool_bar = None self._actions = {} self._create_menu() self._tool_bar = QToolBar() self.addToolBar(self._tool_bar) for action in self._actions.values(): if not action.icon().isNull(): self._tool_bar.addAction(action) self._addres_line_edit = QLineEdit() self._addres_line_edit.setClearButtonEnabled(True) self._addres_line_edit.returnPressed.connect(self.load) self._tool_bar.addWidget(self._addres_line_edit) self._zoom_label = QLabel() self.statusBar().addPermanentWidget(self._zoom_label) self._update_zoom_label() self._bookmarksToolBar = QToolBar() self.addToolBar(Qt.TopToolBarArea, self._bookmarksToolBar) self.insertToolBarBreak(self._bookmarksToolBar) self._bookmark_widget.changed.connect(self._update_bookmarks) self._update_bookmarks() def _update_bookmarks(self): self._bookmark_widget.populate_tool_bar(self._bookmarksToolBar) self._bookmark_widget.populate_other(self._bookmark_menu, 3) def _create_menu(self): file_menu = self.menuBar().addMenu("&File") exit_action = QAction(QIcon.fromTheme("application-exit"), "E&xit", self, shortcut = "Ctrl+Q", triggered=qApp.quit) file_menu.addAction(exit_action) navigation_menu = self.menuBar().addMenu("&Navigation") style_icons = ':/qt-project.org/styles/commonstyle/images/' back_action = QAction(QIcon.fromTheme("go-previous", QIcon(style_icons + 'left-32.png')), "Back", self, shortcut = QKeySequence(QKeySequence.Back), triggered = self._tab_widget.back) self._actions[QWebEnginePage.Back] = back_action back_action.setEnabled(False) navigation_menu.addAction(back_action) forward_action = QAction(QIcon.fromTheme("go-next", QIcon(style_icons + 'right-32.png')), "Forward", self, shortcut = QKeySequence(QKeySequence.Forward), triggered = self._tab_widget.forward) forward_action.setEnabled(False) self._actions[QWebEnginePage.Forward] = forward_action navigation_menu.addAction(forward_action) reload_action = QAction(QIcon(style_icons + 'refresh-32.png'), "Reload", self, shortcut = QKeySequence(QKeySequence.Refresh), triggered = self._tab_widget.reload) self._actions[QWebEnginePage.Reload] = reload_action reload_action.setEnabled(False) navigation_menu.addAction(reload_action) navigation_menu.addSeparator() new_tab_action = QAction("New Tab", self, shortcut = 'Ctrl+T', triggered = self.add_browser_tab) navigation_menu.addAction(new_tab_action) close_tab_action = QAction("Close Current Tab", self, shortcut = "Ctrl+W", triggered = self._close_current_tab) navigation_menu.addAction(close_tab_action) edit_menu = self.menuBar().addMenu("&Edit") find_action = QAction("Find", self, shortcut = QKeySequence(QKeySequence.Find), triggered = self._show_find) edit_menu.addAction(find_action) edit_menu.addSeparator() undo_action = QAction("Undo", self, shortcut = QKeySequence(QKeySequence.Undo), triggered = self._tab_widget.undo) self._actions[QWebEnginePage.Undo] = undo_action undo_action.setEnabled(False) edit_menu.addAction(undo_action) redo_action = QAction("Redo", self, shortcut = QKeySequence(QKeySequence.Redo), triggered = self._tab_widget.redo) self._actions[QWebEnginePage.Redo] = redo_action redo_action.setEnabled(False) edit_menu.addAction(redo_action) edit_menu.addSeparator() cut_action = QAction("Cut", self, shortcut = QKeySequence(QKeySequence.Cut), triggered = self._tab_widget.cut) self._actions[QWebEnginePage.Cut] = cut_action cut_action.setEnabled(False) edit_menu.addAction(cut_action) copy_action = QAction("Copy", self, shortcut = QKeySequence(QKeySequence.Copy), triggered = self._tab_widget.copy) self._actions[QWebEnginePage.Copy] = copy_action copy_action.setEnabled(False) edit_menu.addAction(copy_action) paste_action = QAction("Paste", self, shortcut = QKeySequence(QKeySequence.Paste), triggered = self._tab_widget.paste) self._actions[QWebEnginePage.Paste] = paste_action paste_action.setEnabled(False) edit_menu.addAction(paste_action) edit_menu.addSeparator() select_all_action = QAction("Select All", self, shortcut = QKeySequence(QKeySequence.SelectAll), triggered = self._tab_widget.select_all) self._actions[QWebEnginePage.SelectAll] = select_all_action select_all_action.setEnabled(False) edit_menu.addAction(select_all_action) self._bookmark_menu = self.menuBar().addMenu("&Bookmarks") add_bookmark_action = QAction("&Add Bookmark", self, triggered = self._add_bookmark) self._bookmark_menu.addAction(add_bookmark_action) add_tool_bar_bookmark_action = QAction("&Add Bookmark to Tool Bar", self, triggered = self._add_tool_bar_bookmark) self._bookmark_menu.addAction(add_tool_bar_bookmark_action) self._bookmark_menu.addSeparator() tools_menu = self.menuBar().addMenu("&Tools") download_action = QAction("Open Downloads", self, triggered = DownloadWidget.open_download_directory) tools_menu.addAction(download_action) window_menu = self.menuBar().addMenu("&Window") window_menu.addAction(self._bookmark_dock.toggleViewAction()) window_menu.addSeparator() zoom_in_action = QAction(QIcon.fromTheme("zoom-in"), "Zoom In", self, shortcut = QKeySequence(QKeySequence.ZoomIn), triggered = self._zoom_in) window_menu.addAction(zoom_in_action) zoom_out_action = QAction(QIcon.fromTheme("zoom-out"), "Zoom Out", self, shortcut = QKeySequence(QKeySequence.ZoomOut), triggered = self._zoom_out) window_menu.addAction(zoom_out_action) reset_zoom_action = QAction(QIcon.fromTheme("zoom-original"), "Reset Zoom", self, shortcut = "Ctrl+0", triggered = self._reset_zoom) window_menu.addAction(reset_zoom_action) about_menu = self.menuBar().addMenu("&About") about_action = QAction("About Qt", self, shortcut = QKeySequence(QKeySequence.HelpContents), triggered=qApp.aboutQt) about_menu.addAction(about_action) def add_browser_tab(self): return self._tab_widget.add_browser_tab() def _close_current_tab(self): if self._tab_widget.count() > 1: self._tab_widget.close_current_tab() else: self.close() def close_event(self, event): main_windows.remove(self) event.accept() def load(self): url_string = self._addres_line_edit.text().strip() if url_string: self.load_url_string(url_string) def load_url_string(self, url_s): url = QUrl.fromUserInput(url_s) if (url.isValid()): self.load_url(url) def load_url(self, url): self._tab_widget.load(url) def load_url_in_new_tab(self, url): self.add_browser_tab().load(url) def url_changed(self, url): self._addres_line_edit.setText(url.toString()) def _enabled_changed(self, web_action, enabled): action = self._actions[web_action] if action: action.setEnabled(enabled) def _add_bookmark(self): index = self._tab_widget.currentIndex() if index >= 0: url = self._tab_widget.url() title = self._tab_widget.tabText(index) icon = self._tab_widget.tabIcon(index) self._bookmark_widget.add_bookmark(url, title, icon) def _add_tool_bar_bookmark(self): index = self._tab_widget.currentIndex() if index >= 0: url = self._tab_widget.url() title = self._tab_widget.tabText(index) icon = self._tab_widget.tabIcon(index) self._bookmark_widget.add_tool_bar_bookmark(url, title, icon) def _zoom_in(self): new_zoom = self._tab_widget.zoom_factor() * 1.5 if (new_zoom <= WebEngineView.maximum_zoom_factor()): self._tab_widget.set_zoom_factor(new_zoom) self._update_zoom_label() def _zoom_out(self): new_zoom = self._tab_widget.zoom_factor() / 1.5 if (new_zoom >= WebEngineView.minimum_zoom_factor()): self._tab_widget.set_zoom_factor(new_zoom) self._update_zoom_label() def _reset_zoom(self): self._tab_widget.set_zoom_factor(1) self._update_zoom_label() def _update_zoom_label(self): percent = int(self._tab_widget.zoom_factor() * 100) self._zoom_label.setText("{}%".format(percent)) def _download_requested(self, item): # Remove old downloads before opening a new one for old_download in self.statusBar().children(): if type(old_download).__name__ == 'download_widget' and \ old_download.state() != QWebEngineDownloadItem.DownloadInProgress: self.statusBar().removeWidget(old_download) del old_download item.accept() download_widget = download_widget(item) download_widget.removeRequested.connect(self._remove_download_requested, Qt.QueuedConnection) self.statusBar().addWidget(download_widget) def _remove_download_requested(self): download_widget = self.sender() self.statusBar().removeWidget(download_widget) del download_widget def _show_find(self): if self._find_tool_bar is None: self._find_tool_bar = FindToolBar() self._find_tool_bar.find.connect(self._tab_widget.find) self.addToolBar(Qt.BottomToolBarArea, self._find_tool_bar) else: self._find_tool_bar.show() self._find_tool_bar.focus_find() def write_bookmarks(self): self._bookmark_widget.write_bookmarks()