def initUI(self): self.pacs_ctrl: PACS_ServerCtrl = PACS_OrthancServerCtrl() self.setGeometry(self.left, self.top, self.width, self.height) self.pacs_widget = PACS_MainWidget() self.dicom_widget = Dicom_Browser() # self.liver_support_widget = LiverSupportWidget() self.button_bar = MenuLeftPane() topLayout = QVBoxLayout() topLayout.setAlignment(Qt.AlignTop) topLayout.addWidget(self.button_bar) self.mainWidget = QDockWidget() self.mainWidget.setFeatures(QDockWidget.NoDockWidgetFeatures) self.mainWidget.setTitleBarWidget(QWidget()) self.mainWidget.setWidget(self.dicom_widget) mainLayout = QHBoxLayout(self) mainLayout.setContentsMargins(QMargins(0, 0, 0, 0)) mainLayout.addLayout(topLayout) mainLayout.addWidget(self.mainWidget) self.button_bar.pacs_btn.clicked.connect(self.show_PACSWidget) self.button_bar.dcm_btn.clicked.connect(self.show_DICOMBrowser) # self.button_bar.liv_support_btn.clicked.connect(self.show_liverSupport) self.pacs_widget.dcm_to_browser.connect(self.send_file_to_browser) self.show_PACSWidget()
def __init__(self,application,parent=None): super(MainWindow,self).__init__(parent) #private attributes self.menuBar_ = QMenuBar() self.fileMenu_ = FileMenu(self) self.editMenu_ = EditMenu(self) self.toolbarDoc_ = QDockWidget(self) self.toolbarWidget_ = Toolbar(self) self.setGeometry(0,0,1280,720) #public attributes self.application = application self.contentTab = ContentTab() self.statusBar = QStatusBar() #menuBar self.menuBar_.addMenu(self.fileMenu_) self.menuBar_.addMenu(self.editMenu_) self.menuBar_.addAction("Help",self.helpFunc) self.setMenuBar(self.menuBar_) #statusBar self.statusBar.showMessage("status bar") self.setStatusBar(self.statusBar) #toolBar self.toolbarDoc_.setFeatures(QDockWidget.NoDockWidgetFeatures ) self.addDockWidget(Qt.LeftDockWidgetArea,self.toolbarDoc_) self.toolbarDoc_.setWidget(self.toolbarWidget_) #contentab self.setCentralWidget(self.contentTab)
def init_tree_main_widget(self): """ Inicijalizuje layout main window-a, layout strane, tree, tabove, dugmadi i labele """ self.tabs = QTabWidget() self.tabs.setTabsClosable(True) self.tabs.tabCloseRequested.connect(self.closeMyTab) leftDock = QDockWidget() leftDock.setFixedWidth(250) leftDock.setWidget(self.tabs) leftDock.setAllowedAreas(Qt.LeftDockWidgetArea) leftDock.setFeatures(QDockWidget.NoDockWidgetFeatures) layout = QGridLayout() self.page = QVBoxLayout() self.central = QWidget() self.central.setFixedSize(730, 700) self.central.setLayout(self.page) self.central.setStyleSheet("background-color:white") self.LeftButton = QPushButton() self.PageLabel = QLabel() self.PageLabel.setAlignment(Qt.AlignCenter) self.PageLabel.setText("Nema trenutno otvorene strane") self.RightButton = QPushButton() self.LeftButton.setFixedSize(30, 30) self.RightButton.setFixedSize(30, 30) self.LeftButton.setIcon(QIcon("src/lbutton.png")) self.RightButton.setIcon(QIcon("src/rbutton.png")) layout.addWidget(self.central, 0, 0, 1, 5) layout.addWidget(self.LeftButton, 1, 1, 2, 1) layout.addWidget(self.PageLabel, 1, 2, 2, 1) layout.addWidget(self.RightButton, 1, 3, 2, 1) tmpWidget = QWidget() tmpWidget.setLayout(layout) self.setCentralWidget(tmpWidget) self.addDockWidget(Qt.LeftDockWidgetArea, leftDock)
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 initUI(self): self.segmented_images = LivSupp_SegmentedImagesWidget() self.dockWidget = QDockWidget() self.dockWidget.setTitleBarWidget(QWidget()) self.dockWidget.setWidget(self.segmented_images) layout = QVBoxLayout(self) layout.addWidget(self.dockWidget)
def createToolsDockWidget(self): #Ok """ Use o menu Exibir -> Editar Ferramentas de Imagem e clique no widget dock para ligar ou desligar. O dock de ferramentas pode ser colocado à esquerda ou à direita da janela principal. """ self.dock_tools_view = QDockWidget() self.dock_tools_view.setWindowTitle("Ferramentas Edição de Imagem") self.dock_tools_view.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.img_tool = QWidget() self.rt90_btn = QPushButton("Girar 90°") self.rt90_btn.setMinimumSize(QSize(130, 40)) self.rt90_btn.setStatusTip('Girar imagem 90° no sentido horário') self.rt90_btn.clicked.connect(self.rotateImage90) self.rt180_btn = QPushButton("Girar 180°") self.rt180_btn.setMinimumSize(QSize(130, 40)) self.rt180_btn.setStatusTip('Girar imagem 180° no sentido horário') self.rt180_btn.clicked.connect(self.rotateImage180) self.flph_btn = QPushButton("Espelhar na Horizontal") self.flph_btn.setMinimumSize(QSize(130, 40)) self.flph_btn.setStatusTip('Espelhar imagem no eixo horizontal') self.flph_btn.clicked.connect(self.flipImageHorizontal) self.flpv_btn = QPushButton("Espelhar na Vertical") self.flpv_btn.setMinimumSize(QSize(130, 40)) self.flpv_btn.setStatusTip('Espelhar imagem no eixo vertical') self.flpv_btn.clicked.connect(self.flipImageVertical) self.redm_btn = QPushButton("Redimensionar metade") self.redm_btn.setMinimumSize(QSize(130, 40)) self.redm_btn.setStatusTip( 'Redimensionar imagem para metade do tamanho original') self.redm_btn.clicked.connect(self.resizeImageHalf) vbox = QVBoxLayout() vbox.addWidget(self.rt90_btn) vbox.addWidget(self.rt180_btn) vbox.addStretch(1) vbox.addWidget(self.flph_btn) vbox.addWidget(self.flpv_btn) vbox.addStretch(1) vbox.addWidget(self.redm_btn) vbox.addStretch(6) self.img_tool.setLayout(vbox) self.dock_tools_view.setWidget(self.img_tool) self.addDockWidget(Qt.RightDockWidgetArea, self.dock_tools_view) self.toggle_dock_tools_act = self.dock_tools_view.toggleViewAction()
def __init__(self): QDockWidget.__init__(self, "File Menager") self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) model = QFileSystemModel() model.setRootPath(QDir.currentPath()) tree = QTreeView() tree.setModel(model) self.setWidget(tree)
def change_combat(self, i): remove_widget(current_type="country_changed") self.delete_widget = country_model(self.test_widget, file_name=self.file_name, Number_Id=i) Qrightwidget = QDockWidget() Qrightwidget.setWidget(self.delete_widget) mainwindow.addDockWidget(Qt.RightDockWidgetArea, Qrightwidget) self.delete_mainwidget = Qrightwidget remove_widget_list.append((self, "country_changed"))
def _init_widgets(self): layout = QVBoxLayout() w = QWidget() w.setLayout(layout) dock = QDockWidget("States") dock.setWidget(w) self.disasm_view.main_window.addDockWidget(Qt.RightDockWidgetArea, dock) self.layout = layout self._init_states_viewer()
def create_audio_view(self): """Create the audio control view""" self.audio_dock = QDockWidget("Audio", self) self.audio_dock.setFloating(False) self.audio_view = audioview.ListenerAudio(self) self.audio_dock.setWidget(self.audio_view) self.addDockWidget( Qt.LeftDockWidgetArea, self.audio_dock, )
def create_container_view(self): """Create the container view""" self.container_dock = QDockWidget("Container", self) self.container_dock.setFloating(False) self.container_view = containersettings.ContainerSettings(self) self.container_dock.setWidget(self.container_view) self.addDockWidget( Qt.LeftDockWidgetArea, self.container_dock, )
def _make_dock(name, widgets=[], tab_with=None): dock = QDockWidget(name) dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) dock_widget = QWidget() layout = QVBoxLayout() for widget in widgets: layout.addWidget(widget) dock_widget.setLayout(layout) dock.setWidget(dock_widget) key = f"hide {name.lower()} dock" if key in prefs and prefs[key]: dock.hide() self.addDockWidget(Qt.RightDockWidgetArea, dock) self.viewMenu.addAction(dock.toggleViewAction()) if tab_with is not None: self.tabifyDockWidget(tab_with, dock) return layout
def __init__(self): """ Dockable widget containing the Side Panel """ QDockWidget.__init__(self) self.sidepanel = ViewSidePanel() self.setWidget(self.sidepanel) self.setAllowedAreas(Qt.LeftDockWidgetArea) self.setFeatures(QDockWidget.DockWidgetFloatable)
class LiverSupportWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.segmented_images = LivSupp_SegmentedImagesWidget() self.dockWidget = QDockWidget() self.dockWidget.setTitleBarWidget(QWidget()) self.dockWidget.setWidget(self.segmented_images) layout = QVBoxLayout(self) layout.addWidget(self.dockWidget)
def _init_widgets(self): window = QMainWindow() window.setWindowFlags(Qt.Widget) # pseudo code text box self._textedit = QCCodeEdit(self) self._textedit.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse) self._textedit.setLineWrapMode(QCCodeEdit.NoWrap) textedit_dock = QDockWidget('Code', self._textedit) window.setCentralWidget(textedit_dock) textedit_dock.setWidget(self._textedit) # decompilation self._options = QDecompilationOptions(self, self.workspace.instance, options=None) options_dock = QDockWidget('Decompilation Options', self._options) window.addDockWidget(Qt.RightDockWidgetArea, options_dock) options_dock.setWidget(self._options) layout = QHBoxLayout() layout.addWidget(window) layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.workspace.plugins.instrument_code_view(self)
def __init__(self): super(Window, self).__init__() interactiveMap = InteractiveMap(self) self.setCentralWidget(interactiveMap) self.countryInfo = QDockWidget("Country Information", self) self.countryInfo.setFeatures(QDockWidget.DockWidgetClosable) self.countryInfo.setFixedWidth(300) self.countryInfo.hide() self.addDockWidget(Qt.RightDockWidgetArea, self.countryInfo) self.setWindowTitle("Project Fiscal")
def createFileList(self): self.files = QListWidget() self.files.setSelectionMode(QAbstractItemView.SingleSelection) self.files.setSortingEnabled(False) self.files.itemSelectionChanged.connect(self.onSelect) self.files.itemDoubleClicked.connect(self.onToggle) self.files.setEnabled(False) dock = QDockWidget("Images", self) dock.setAllowedAreas(Qt.LeftDockWidgetArea) dock.setFixedWidth(320) dock.setFeatures(QDockWidget.NoDockWidgetFeatures) dock.setWidget(self.files) self.addDockWidget(Qt.LeftDockWidgetArea, dock)
def make_dock_widget(parent, name, view, area, allowedAreas, features=QDockWidget.DockWidgetClosable | QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable): dock = QDockWidget(name, parent) dock.setObjectName(name) dock.setAllowedAreas(allowedAreas) dock.setFeatures(features) dock.setWidget(view) parent.addDockWidget(area, dock) return dock
def __init__(self, parent=None, editMode=bool(False)): super(PuppetMaster, self).__init__(parent) self._parent = parent self._model = list() self.editMode = editMode self.setMouseTracking(True) self.setFocusPolicy(Qt.StrongFocus) self.setWindowTitle('PuppetMaster') self.setMinimumHeight(1) self.setMinimumWidth(1) self.setContextMenuPolicy(Qt.PreventContextMenu) # Main tabs self.tab = CanvasGraphicsViewTab(parent=self) self.tab.requestEditMode.connect(self.set_edit) self.setCentralWidget(self.tab) # Parameter Widget self.parameter = Parameters(parent=self) self.parameterDock = QDockWidget(": Parameters ::", self) self.parameterDock.setObjectName('Parameters') self.parameterDock.setFeatures(QDockWidget.DockWidgetClosable) self.parameterDock.setWidget(self.parameter) self.parameterDock.setTitleBarWidget(QWidget(self.parameterDock)) self.parameterDock.setVisible(self.editMode) self.addDockWidget(Qt.BottomDockWidgetArea, self.parameterDock) self.tab.onSelection.connect(self.update_parameters) self.parameter.onChangeBGColor.connect(self.tab.update_bg_color) self.parameter.onChangeFontColor.connect(self.tab.update_font_color) self.parameter.onChangeFontSize.connect(self.tab.update_font_size) self.parameter.onChangeText.connect(self.tab.update_text) self.parameter.onChangeShape.connect(self.tab.update_shape) # maya Signal on selection items self.idx = OpenMaya.MEventMessage.addEventCallback( "SelectionChanged", self.tab.maya_selection) # Menu self.setMenuBar(self.create_menu()) self.set_edit(self.editMode)
def create_chart(self): # Canvas for SPC Chart if self.canvas is not None: # CentralWidget self.takeCentralWidget() del self.canvas # DockWidget self.removeDockWidget(self.dock) self.dock.deleteLater() del self.navtoolbar # PART Number & PARAMETER Name name_part, name_param = self.get_part_param(self.row) self.updateTitle(name_part, name_param) # CentralWidget self.canvas: FigureCanvas = self.gen_chart(name_part, name_param) self.setCentralWidget(self.canvas) # DockWidget self.navtoolbar: NavigationToolbar = NavigationToolbar( self.canvas, self) self.dock: QDockWidget = QDockWidget('Navigation Toolbar') self.dock.setFeatures(QDockWidget.NoDockWidgetFeatures) self.dock.setWidget(self.navtoolbar) self.addDockWidget(Qt.BottomDockWidgetArea, self.dock) # update row selection of 'Master' sheet self.parent.setMasterRowSelect(self.row)
def createDockWindows(self): # Info dock = QDockWidget('Details', self) dock.setObjectName("DETAILS") dock.setAllowedAreas(Qt.AllDockWidgetAreas) self.detailsWidget = InfoPanelWidget(self) self.project_widget.treeCurrentItemChanged.connect( self.detailsWidget.setItem) self.project_widget.treeCurrentItemChanged.connect( self.currentItemChanged) dock.setWidget(self.detailsWidget) self.addDockWidget(Qt.RightDockWidgetArea, dock) self.viewMenu.addAction(dock.toggleViewAction())
def __init__(self, job_service): self.app = QApplication(sys.argv) self.job_service = job_service self.list_view = ListView() self.info_panel = JobInfoPanel() self.dock = QDockWidget() self.dock.setWidget(self.list_view) self.dock.setFeatures(self.dock.NoDockWidgetFeatures) self.dock.setTitleBarWidget(QWidget()) self.main_window = MainWindow() self.main_window.setCentralWidget(self.info_panel) self.main_window.addDockWidget(Qt.LeftDockWidgetArea, self.dock) self.list_view.selectionModel().currentChanged.connect(self.list_item_selected)
def __init__(self, parent=None): super().__init__(parent) self._sequences = [] """All sequences as a list of tuples (seq_as_graph, seq_as_list, radio_button)""" self.selector_placeholder = QLabel("(none)") self.selector_placeholder.setAlignment(Qt.AlignCenter) self.selector = None self.selector_button_group = None self.selector_scroll_area = QScrollArea() self.selector_dock = QDockWidget("Active Sequence", self) self.selector_dock.setWidget(self.selector_scroll_area) self.selector_dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.selector_dock.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) self.addDockWidget(Qt.LeftDockWidgetArea, self.selector_dock)
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): 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 createDockWidget(self): """ Criar dock """ dock_wgt = QDockWidget() dock_wgt.setWindowTitle("Dock Exemplo") dock_wgt.setAllowedAreas(Qt.AllDockWidgetAreas) dock_wgt.setWidget(QTextEdit()) self.addDockWidget(Qt.LeftDockWidgetArea, dock_wgt)
def setupUI(self): self.dock = QDockWidget() self.dock.setWindowTitle("File Browser") self.masterWidget = QWidget() self.masterLayout = QVBoxLayout(self.masterWidget) self.dock.setWidget(self.masterWidget) movieExt = ["*.mov", "*.mp4", "*.wmv", "*.movieproc"] imgExt = [ "*.ext", "*.tiff", "*.tif", "*.dpx", "*.iff", "*.jpeg", "*.png", "*.ari" ] rawCam = [ ".arw", ".cr2", ".crw", ".dng", ".nef", ".orf", ".pef", ".ptx", ".raf", ".rdc", ".rmf" ] self.fileBrowser = FileBrowser(filterExtension=movieExt + imgExt + rawCam) self.fileBrowser.executed.connect(self.play) self.masterLayout.addWidget(self.fileBrowser)
def add_dock(self, title, widget, hidden=True): """Adds the move history dock to the main window.""" dock = QDockWidget(title, self) dock.setWidget(widget) if hidden: dock.hide() return dock
def __init__(self, parent=None): super().__init__(parent) self._scheme = None self._scheme_view = Scheme.View() self._toolbox = None self.setCentralWidget(self._scheme_view) self.toolbox_dock = QDockWidget("Node Toolbox", self) self.toolbox_dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.toolbox_dock.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) self.addDockWidget(Qt.LeftDockWidgetArea, self.toolbox_dock) self.setToolbox(Toolbox(self)) self.config_widget_dock = QDockWidget("Configuration", self) self.config_widget_dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.addDockWidget(Qt.RightDockWidgetArea, self.config_widget_dock) self.config_widget_dock.hide()
def _move_dock_to_new_parent(self, dock: QDockWidget, new_parent: QMainWindow, dock_location=Qt.BottomDockWidgetArea): """The the doc to a different parent window. Args: dock (QDockWidget): Dock to move new_parent (QMainWindow): New parent window dock_location (Qt dock location): Location of the dock. Defaults to Qt.BottomDockWidgetArea. """ dock.setParent(new_parent) new_parent.addDockWidget(dock_location, dock) dock.setFloating(False) dock.show() dock.setMaximumHeight(99999)
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): """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()