aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/doc/tutorials
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2025-02-13 14:27:37 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2025-02-13 16:54:54 +0100
commit0126e4242da81a130219a37ac994f1ca5b494632 (patch)
tree2b0df9fda2363a5f29afae3d8f91446a2815abe6 /sources/pyside6/doc/tutorials
parent4b6390ae3919e5e24e4b48c127c3af41bd827b9c (diff)
Fix the SQL tutorial to work
Adapt to qtbase/d49a7412f55390e461773f4ffc36a82958d59b6d. Change-Id: I45065fd96a055f7966268ca14fd517f23798a923 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/doc/tutorials')
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py10
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.pyproject3
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/rc_books.py88
-rw-r--r--sources/pyside6/doc/tutorials/portingguide/chapter3/ui_bookwindow.py142
4 files changed, 235 insertions, 8 deletions
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py
index 6abbc3343..6d96d6a80 100644
--- a/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/bookdelegate.py
@@ -2,7 +2,6 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from __future__ import annotations
-import copy
from PySide6.QtSql import QSqlRelationalDelegate
from PySide6.QtWidgets import QSpinBox, QStyle
from PySide6.QtGui import QPixmap, QPalette
@@ -13,7 +12,7 @@ class BookDelegate(QSqlRelationalDelegate):
"""Books delegate to rate the books"""
def __init__(self, star_png, parent=None):
- QSqlRelationalDelegate.__init__(self, parent)
+ super().__init__(parent)
self.star = QPixmap(":/images/star.png")
def paint(self, painter, option, index):
@@ -29,9 +28,7 @@ class BookDelegate(QSqlRelationalDelegate):
"""
if index.column() != 5:
# Since we draw the grid ourselves:
- opt = copy.copy(option)
- opt.rect = option.rect.adjusted(0, 0, -1, -1)
- QSqlRelationalDelegate.paint(self, painter, opt, index)
+ QSqlRelationalDelegate.paint(self, painter, option, index)
else:
model = index.model()
if option.state & QStyle.State_Enabled:
@@ -54,9 +51,6 @@ class BookDelegate(QSqlRelationalDelegate):
painter.drawPixmap(x, y, self.star)
x += width
- # Since we draw the grid ourselves:
- self.drawFocus(painter, option, option.rect.adjusted(0, 0, -1, -1))
-
pen = painter.pen()
painter.setPen(option.palette.color(QPalette.Mid))
painter.drawLine(option.rect.bottomLeft(), option.rect.bottomRight())
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.pyproject b/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.pyproject
new file mode 100644
index 000000000..3f755a88c
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/chapter3.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "bookdelegate.py", "books.qrc", "bookwindow.py", "bookwindow.ui", "createdb.py"]
+}
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/rc_books.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/rc_books.py
new file mode 100644
index 000000000..009d355a0
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/rc_books.py
@@ -0,0 +1,88 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.9.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\x0e\
+\x89\
+PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\
+\x00\x00\x00\x09pHYs\x00\x00\x0b\x11\x00\x00\x0b\x11\
+\x01\x7fd_\x91\x00\x00\x00\x07tIME\x07\xd4\x09\
+\x03\x12\x11\x08\x18~\xe5:\x00\x00\x00\x06bKGD\
+\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x02\x9bID\
+AT8\xcbc\x98:c\x1e#:\xe6\xe5d\xcf\x17\
+\x12\x12\x16\xc4&\x87\x8e\x19\xb0\x09v\xc6\x18\xb7x\xea\
+\x8b\xcd\x9c=o\x09i\x06,X4\x8f\xf1\xd2\xa5\x99\
+L\xb9\xa1\x16\xc5\xc7\xbb\xed\xff\x0a\xf2\xb2;M\x9f\xb5\
+\x908\x03\x16,\x9a\xcb\xf8\xe0\xde\x04\x96\xc7\x0f\xdby\
+\xe7MO\xc8\xfbv\xbf\xe5\xff\xb4\x0a\x9b\x9by\x851\
+\xdc\xd3g-\x82k\x983\x7f)\xe3l F1`\
+\xca\xf4y\x8c\xd7\xaeMg\x02i~\xf2\xa8Y\xe1\xd2\
+\xa5\xfa\xdc_\x9f7\xfd\xffx\xbf\xea\x7fE\x96m\x97\
+\x81\x81>'33\x8b\xa5\x9e8gi\xb8\x9e\xc0f\
+&&\xa6D\x14\x03&N\x9d\xc7x\xef\xdeD\x96'\
+\x0f[E\x9f>j\xd6\xbdu\xb3\x22\xef\xd7\xb7=\xff\
+\xbe\x7f\xe8\xfb\x7f~S\xcc\xef\x05\xc5\xea\x9fNOQ\
+\xfb\x7f\xbaM\xed\xbf\x87\x1a\xefn5-\x1dV\x14\x03\
+f\xcf[\xce\xa8\xa4\xa9![W\xed\x9b}\xefJ\xcb\
+\xcew\xaf&\x7f\xfa\xfee\xc9\xff\xef\x1f\xfa\xff\xbf\xbf\
+\x95\xf2\xff\xc9^\x83\xffW\x17\xaa\xfdot\x12{\xc4\
+\xc7\xc7/\x8e\x12\x06Y\xb9\x85\xcc\xb2\x82\x1c\xf3\xa7D\
+\xab\xfe\xfa\xbe%\xe2\xff\x8fgm\xff\x7f|\x9a\x08\xd6\
+\xfc\xf5Y\xcd\xff\xd7\xe7\xfc\xfe\xdf\xde\xa0\xf5\x7fE\x94\
+\xecO\x16\x16V\xebi3\xe7\xa3\x06\xe2\xe4is\x18\
+\xe7/Z\xc1\xc8\xce\xc1i\x10\xe5\xa8\xd2\xbe\xa6\xcd\xe7\
+\xf6\xc3m\x99\xff~^(\xf8\xff\xe1j\xe0\xff\x17G\
+L\xff\xdf\xdf\xae\xf6\xbf\xc2]\xf4\xba\x9a\x9a\x06\x1bF\
+,\x00\x01#2\xe6\xe6\xe6`Q\xd6\x941_\xde\xe4\
+q\xfb\xc3y\xd3\xff\x1b\x8aT\xff\xbf?`\xff\xff\xdc\
+l\xe5\xff\xea\xc2\x1c9\xd3g-\xc0i\x00\x13\x10\x8b\
+\x03\xb1?\x10\xe7\xf5\x16\xd8\xde\xf8p\xc6\xe4\xbf\x9d<\
+\xf7t\x7fC\xe9\x95\xb7\x96\xd9\xff\x9b\x9c,\xfdN@\
+@H\x14\x9b\x01LP,\x06\xc4\x19@|\x22;\xca\
+\xf0\xe7\xe9\xf9\x06\xff\x81\xec\x03@\xbc^\x82\x9f\xf3\xf6\
+\x9e\x1a\xf3_az\x823P\xd2\x01T#3\x10\x0b\
+\x00\xb1\x1e\x10\x17\x03\xf1\xd1\xa8@\xdd\x9f\xad\x09J \
+\x03\xfe\x00\xf17 >\x0f\xb4kf\xb9\xa7\xea\x0d}\
+i>#d\x03\xb4\x808\x08\x88k\x81x\x09\xd4\xc6\
+\x1b\x11a\x06\xdf\xec\x94\xb8\xdf\x03\xd9;\x81x\x1a\x10\
+\xf7\x82\xd4\xb0\xb2\xb1G\xf9\xda\x99:L\x9d9\x9f\x09\
+f\x80\x0e\x10;\x02\xb1\x13\x10[\x00\xb1\x01\x10\x07\x06\
+{h\x9c\x02\xd2k\xa0\x86\x8b\x001\x17\x10\xf3\x80\xb0\
+\x88\x88(\xcb,hFC\xf6\x02\x08\xb3\x001+\x10\
+K122\xe4\x01i7 \x96\x01b6\xa88\x0b\
+T=cW\xef$\xb0\x01\x00\xceo{\xf5UL\xf0\
+\xac\x00\x00\x00\x00IEND\xaeB`\x82\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\x03}\xc3\
+\x00i\
+\x00m\x00a\x00g\x00e\x00s\
+\x00\x08\
+\x0a\x85X\x07\
+\x00s\
+\x00t\x00a\x00r\x00.\x00p\x00n\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01}\xc3\x96\xdb\xbd\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/sources/pyside6/doc/tutorials/portingguide/chapter3/ui_bookwindow.py b/sources/pyside6/doc/tutorials/portingguide/chapter3/ui_bookwindow.py
new file mode 100644
index 000000000..542b66150
--- /dev/null
+++ b/sources/pyside6/doc/tutorials/portingguide/chapter3/ui_bookwindow.py
@@ -0,0 +1,142 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'bookwindow.ui'
+##
+## Created by: Qt User Interface Compiler version 6.9.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractItemView, QApplication, QComboBox, QFormLayout,
+ QGroupBox, QHeaderView, QLabel, QLineEdit,
+ QMainWindow, QSizePolicy, QSpinBox, QTableView,
+ QVBoxLayout, QWidget)
+
+class Ui_BookWindow(object):
+ def setupUi(self, BookWindow):
+ if not BookWindow.objectName():
+ BookWindow.setObjectName(u"BookWindow")
+ BookWindow.resize(601, 420)
+ self.centralWidget = QWidget(BookWindow)
+ self.centralWidget.setObjectName(u"centralWidget")
+ self.vboxLayout = QVBoxLayout(self.centralWidget)
+#ifndef Q_OS_MAC
+ self.vboxLayout.setSpacing(6)
+#endif
+#ifndef Q_OS_MAC
+ self.vboxLayout.setContentsMargins(9, 9, 9, 9)
+#endif
+ self.vboxLayout.setObjectName(u"vboxLayout")
+ self.groupBox = QGroupBox(self.centralWidget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.vboxLayout1 = QVBoxLayout(self.groupBox)
+#ifndef Q_OS_MAC
+ self.vboxLayout1.setSpacing(6)
+#endif
+#ifndef Q_OS_MAC
+ self.vboxLayout1.setContentsMargins(9, 9, 9, 9)
+#endif
+ self.vboxLayout1.setObjectName(u"vboxLayout1")
+ self.bookTable = QTableView(self.groupBox)
+ self.bookTable.setObjectName(u"bookTable")
+ self.bookTable.setSelectionBehavior(QAbstractItemView.SelectRows)
+
+ self.vboxLayout1.addWidget(self.bookTable)
+
+ self.groupBox_2 = QGroupBox(self.groupBox)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.formLayout = QFormLayout(self.groupBox_2)
+ self.formLayout.setObjectName(u"formLayout")
+ self.label_5 = QLabel(self.groupBox_2)
+ self.label_5.setObjectName(u"label_5")
+
+ self.formLayout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_5)
+
+ self.titleEdit = QLineEdit(self.groupBox_2)
+ self.titleEdit.setObjectName(u"titleEdit")
+ self.titleEdit.setEnabled(True)
+
+ self.formLayout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.titleEdit)
+
+ self.label_2_2_2_2 = QLabel(self.groupBox_2)
+ self.label_2_2_2_2.setObjectName(u"label_2_2_2_2")
+
+ self.formLayout.setWidget(1, QFormLayout.ItemRole.LabelRole, self.label_2_2_2_2)
+
+ self.authorEdit = QComboBox(self.groupBox_2)
+ self.authorEdit.setObjectName(u"authorEdit")
+ self.authorEdit.setEnabled(True)
+
+ self.formLayout.setWidget(1, QFormLayout.ItemRole.FieldRole, self.authorEdit)
+
+ self.label_3 = QLabel(self.groupBox_2)
+ self.label_3.setObjectName(u"label_3")
+
+ self.formLayout.setWidget(2, QFormLayout.ItemRole.LabelRole, self.label_3)
+
+ self.genreEdit = QComboBox(self.groupBox_2)
+ self.genreEdit.setObjectName(u"genreEdit")
+ self.genreEdit.setEnabled(True)
+
+ self.formLayout.setWidget(2, QFormLayout.ItemRole.FieldRole, self.genreEdit)
+
+ self.label_4 = QLabel(self.groupBox_2)
+ self.label_4.setObjectName(u"label_4")
+
+ self.formLayout.setWidget(3, QFormLayout.ItemRole.LabelRole, self.label_4)
+
+ self.yearEdit = QSpinBox(self.groupBox_2)
+ self.yearEdit.setObjectName(u"yearEdit")
+ self.yearEdit.setEnabled(True)
+ self.yearEdit.setMaximum(2100)
+ self.yearEdit.setMinimum(-1000)
+
+ self.formLayout.setWidget(3, QFormLayout.ItemRole.FieldRole, self.yearEdit)
+
+ self.label = QLabel(self.groupBox_2)
+ self.label.setObjectName(u"label")
+
+ self.formLayout.setWidget(4, QFormLayout.ItemRole.LabelRole, self.label)
+
+ self.ratingEdit = QSpinBox(self.groupBox_2)
+ self.ratingEdit.setObjectName(u"ratingEdit")
+ self.ratingEdit.setMaximum(5)
+
+ self.formLayout.setWidget(4, QFormLayout.ItemRole.FieldRole, self.ratingEdit)
+
+
+ self.vboxLayout1.addWidget(self.groupBox_2)
+
+
+ self.vboxLayout.addWidget(self.groupBox)
+
+ BookWindow.setCentralWidget(self.centralWidget)
+ QWidget.setTabOrder(self.bookTable, self.titleEdit)
+ QWidget.setTabOrder(self.titleEdit, self.authorEdit)
+ QWidget.setTabOrder(self.authorEdit, self.genreEdit)
+ QWidget.setTabOrder(self.genreEdit, self.yearEdit)
+
+ self.retranslateUi(BookWindow)
+
+ QMetaObject.connectSlotsByName(BookWindow)
+ # setupUi
+
+ def retranslateUi(self, BookWindow):
+ BookWindow.setWindowTitle(QCoreApplication.translate("BookWindow", u"Books", None))
+ self.groupBox.setTitle(QCoreApplication.translate("BookWindow", u"Books", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("BookWindow", u"Details", None))
+ self.label_5.setText(QCoreApplication.translate("BookWindow", u"<b>Title:</b>", None))
+ self.label_2_2_2_2.setText(QCoreApplication.translate("BookWindow", u"<b>Author: </b>", None))
+ self.label_3.setText(QCoreApplication.translate("BookWindow", u"<b>Genre:</b>", None))
+ self.label_4.setText(QCoreApplication.translate("BookWindow", u"<b>Year:</b>", None))
+ self.yearEdit.setPrefix("")
+ self.label.setText(QCoreApplication.translate("BookWindow", u"<b>Rating:</b>", None))
+ # retranslateUi