diff options
Diffstat (limited to 'sources/pyside2/doc/tutorials/portingguide/chapter3/chapter3.rst')
-rw-r--r-- | sources/pyside2/doc/tutorials/portingguide/chapter3/chapter3.rst | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/sources/pyside2/doc/tutorials/portingguide/chapter3/chapter3.rst b/sources/pyside2/doc/tutorials/portingguide/chapter3/chapter3.rst deleted file mode 100644 index 71b254811..000000000 --- a/sources/pyside2/doc/tutorials/portingguide/chapter3/chapter3.rst +++ /dev/null @@ -1,121 +0,0 @@ -Chapter 3: Port ``bookdwindow.cpp`` to ``bookwindow.py`` -********************************************************* - -After the bookdelegate, port the C++ code for the -``BookWindow`` class. It offers a QMainWindow, containing a -``QTableView`` to present the books data, and a **Details** -section with a set of input fields to edit the selected row -in the table. To begin with, create the ``bookwindow.py`` -and add the following imports to it: - -.. literalinclude:: bookwindow.py - :language: python - :linenos: - :lines: 40-53 - -.. note:: The imports include the ``BookDelegate`` you - ported earlier and the ``Ui_BookWindow``. The pyside-uic - tool generates the ``ui_bookwindow`` Python code based - on the ``bookwindow.ui`` XML file. - -To generate this Python code, run the following command on the -prompt: - -.. code-block:: - - pyside2-uic bookwindow.ui > ui_bookwindow.py - -Try porting the remaining code now. To begin with, here is -how both the versions of the constructor code looks: - -C++ version ------------- - -.. literalinclude:: bookwindow.cpp - :language: c++ - :linenos: - :lines: 47-115 - -Python version ---------------- - -.. literalinclude:: bookwindow.py - :language: python - :linenos: - :lines: 53-116 - -.. note:: The Python version of the ``BookWindow`` class - definition inherits from both ``QMainWindow`` and - ``Ui_BookWindow``, which is defined in the - ``ui_bookwindow.py`` file that you generated earlier. - -Here is how the rest of the code looks like: - -C++ version ------------- - -.. literalinclude:: bookwindow.cpp - :language: c++ - :linenos: - :lines: 115- - -Python version ---------------- - -.. literalinclude:: bookwindow.py - :language: python - :linenos: - :lines: 117- - -Now that all the necessary pieces are in place, try to put -them together in ``main.py``. - -.. literalinclude:: main.py - :language: python - :linenos: - :lines: 40- - -Try running this to see if you get the following output: - -.. image:: images/chapter3-books.png - :alt: BookWindow with a QTableView and a few input fields - -Now, if you look back at :doc:`chapter2 <../chapter2/chapter2>`, -you'll notice that the ``bookdelegate.py`` loads the -``star.png`` from the filesytem. Instead, you could add it -to a ``qrc`` file, and load from it. The later approach is -rececommended if your application is targeted for -different platforms, as most of the popular platforms -employ stricter file access policy these days. - -To add the ``star.png`` to a ``.qrc``, create a file called -``books.qrc`` and the following XML content to it: - -.. literalinclude:: books.qrc - :linenos: - -This is a simple XML file defining a list all resources that -your application needs. In this case, it is the ``star.png`` -image only. - -Now, run the ``pyside2-rcc`` tool on the ``books.qrc`` file -to generate ``rc_books.py``. - -.. code-block:: - - pyside2-rcc books.qrc > rc_books.py - -Once you have the Python script generated, make the -following changes to ``bookdelegate.py`` and ``main.py``: - -.. literalinclude:: bookdelegate.py - :diff: ../chapter2/bookdelegate.py - -.. literalinclude:: main.py - :diff: main-old.py - -Although there will be no noticeable difference in the UI -after these changes, using a ``.qrc`` is a better approach. - -Now that you have successfully ported the SQL Books example, -you know how easy it is. Try porting another C++ application. |