aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/doc/examples/tabbedbrowser.rst
blob: c34c50647e9baa0e1b047aacae6684d564167a2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
**********************
Web Browser Example
**********************

The example demonstrates the power and simplicity offered by |project| to developers.
It uses several |pymodname| submodules to offer a fluid and modern-looking UI that
is apt for a web browser. The application offers the following features:

    * Tab-based browsing experience using QTabWidget.
    * Download manager using a QProgressBar and QWebEngineDownloadItem.
    * Bookmark manager using QTreeView.

.. image:: images/tabbedbrowser.png

The application's code is organized in several parts for ease of maintenance. For example,
:code:`DownloadWidget` provides a widget to track progress of a download item. In the following
sections, these different parts are discussed briefly to help you understand the Python code behind
them a little better.

BookmarkWidget or :code:`bookmarkwidget.py`
===========================================

This widget docks to the left of the main window by default. It inherits QTreeView and
loads a default set of bookmarks using a QStandardItemModel. The model is populated at startup
from a JSON file, which is updated when you add or remove bookmarks from the tree view.

.. automodule:: bookmarkwidget
   :members:

DownloadWidget or :code:`downloadwidget.py`
=============================================

The widget tracks progress of the download item. It inherits QProgressBar to display
progress of the QWebEngineDownloadItem instance, and offers a context-menu with actions such as Launch,
Show in folder, Cancel, and Remove.

.. automodule:: downloadwidget
   :members:

BrowserTabWidget or :code:`browsertabwidget.py`
===============================================

The widget includes a QWebEngineView to enable viewing web content. It docks to the right
of BookmarkWidget in the main window.

.. automodule:: browsertabwidget
   :members:

MainWindow or :code:`main.py`
=============================

This is the parent window that collates all the other widgets together to offer the complete package.

.. automodule:: main
   :members:


Try running the example to explore it further.