aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgets
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-08-08 15:07:12 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-08-11 09:12:56 +0200
commitc4a266e38fe5bdce707ad6b123fa88bb4f10dff3 (patch)
treea7cc96a47dec82f5b11093ad9837cc221b8c6c8e /examples/widgets
parent89e5d35c0f002fcb1aac3b1205402ce306074255 (diff)
snippets_translate: Add a way of using snippets from Python
Split a helper off the snippet extraction function taking the comment pattern and let it return a dict by id to make it possible to replace snippets by id. Prototypically use it for the modelview tutorial. Fixes: PYSIDE-1984 Task-number: PYSIDE-1952 Pick-to: 6.3 6.2 Change-Id: I05dbc3e36825761fe2968d6507880cd6f588682d Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'examples/widgets')
-rw-r--r--examples/widgets/tutorials/modelview/1_readonly.py2
-rw-r--r--examples/widgets/tutorials/modelview/2_formatting.py2
-rw-r--r--examples/widgets/tutorials/modelview/3_changingmodel.py7
-rw-r--r--examples/widgets/tutorials/modelview/4_headers.py2
-rw-r--r--examples/widgets/tutorials/modelview/5_edit.py4
-rw-r--r--examples/widgets/tutorials/modelview/6_treeview.py3
-rw-r--r--examples/widgets/tutorials/modelview/7_selections.py5
7 files changed, 22 insertions, 3 deletions
diff --git a/examples/widgets/tutorials/modelview/1_readonly.py b/examples/widgets/tutorials/modelview/1_readonly.py
index 3bd16e78f..9dc923260 100644
--- a/examples/widgets/tutorials/modelview/1_readonly.py
+++ b/examples/widgets/tutorials/modelview/1_readonly.py
@@ -9,6 +9,7 @@ from PySide6.QtWidgets import QApplication, QTableView
"""PySide6 port of the widgets/tutorials/modelview/1_readonly example from Qt v6.x"""
+#! [1]
class MyModel(QAbstractTableModel):
def __init__(self, parent=None):
super().__init__(parent)
@@ -25,6 +26,7 @@ class MyModel(QAbstractTableModel):
column = index.column() + 1
return f"Row{row}, Column{column}"
return None
+#! [1]
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/modelview/2_formatting.py b/examples/widgets/tutorials/modelview/2_formatting.py
index b029ef846..73c993e5f 100644
--- a/examples/widgets/tutorials/modelview/2_formatting.py
+++ b/examples/widgets/tutorials/modelview/2_formatting.py
@@ -20,6 +20,7 @@ class MyModel(QAbstractTableModel):
def columnCount(self, parent=None):
return 3
+#! [1]
def data(self, index, role=Qt.DisplayRole):
row = index.row()
col = index.column()
@@ -52,6 +53,7 @@ class MyModel(QAbstractTableModel):
return Qt.Checked
return None
+#! [1]
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/modelview/3_changingmodel.py b/examples/widgets/tutorials/modelview/3_changingmodel.py
index 55c004bbc..e277dd1e8 100644
--- a/examples/widgets/tutorials/modelview/3_changingmodel.py
+++ b/examples/widgets/tutorials/modelview/3_changingmodel.py
@@ -10,12 +10,14 @@ from PySide6.QtWidgets import QApplication, QTableView
class MyModel(QAbstractTableModel):
+#! [1]
def __init__(self, parent=None):
super().__init__(parent)
self._timer = QTimer(self)
self._timer.setInterval(1000)
self._timer.timeout.connect(self.timer_hit)
self._timer.start()
+#! [1]
def rowCount(self, parent=None):
return 2
@@ -23,20 +25,23 @@ class MyModel(QAbstractTableModel):
def columnCount(self, parent=None):
return 3
+#! [2]
def data(self, index, role=Qt.DisplayRole):
row = index.row()
col = index.column()
if role == Qt.DisplayRole and row == 0 and col == 0:
return QTime.currentTime().toString()
return None
+#! [2]
+#! [3]
@Slot()
def timer_hit(self):
# we identify the top left cell
top_left = self.createIndex(0, 0)
# emit a signal to make the view reread identified data
self.dataChanged.emit(top_left, top_left, [Qt.DisplayRole])
-
+#! [3]
if __name__ == '__main__':
app = QApplication(sys.argv)
diff --git a/examples/widgets/tutorials/modelview/4_headers.py b/examples/widgets/tutorials/modelview/4_headers.py
index 97ab164c0..3feef17bf 100644
--- a/examples/widgets/tutorials/modelview/4_headers.py
+++ b/examples/widgets/tutorials/modelview/4_headers.py
@@ -26,10 +26,12 @@ class MyModel(QAbstractTableModel):
return f"Row{row}, Column{column}"
return None
+#! [1]
def headerData(self, section, orientation, role):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
return ["first", "second", "third"][section]
return None
+#! [1]
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/modelview/5_edit.py b/examples/widgets/tutorials/modelview/5_edit.py
index e1dfdecec..1a4481fc9 100644
--- a/examples/widgets/tutorials/modelview/5_edit.py
+++ b/examples/widgets/tutorials/modelview/5_edit.py
@@ -33,6 +33,7 @@ class MyModel(QAbstractTableModel):
return self._grid_data[index.row()][index.column()]
return None
+#! [1]
def setData(self, index, value, role):
if role != Qt.EditRole or not self.checkIndex(index):
return False
@@ -42,9 +43,12 @@ class MyModel(QAbstractTableModel):
result = " ".join(chain(*self._grid_data))
self.editCompleted.emit(result)
return True
+#! [1]
+#! [2]
def flags(self, index):
return Qt.ItemIsEditable | super().flags(index)
+#! [2]
class MainWindow(QMainWindow):
diff --git a/examples/widgets/tutorials/modelview/6_treeview.py b/examples/widgets/tutorials/modelview/6_treeview.py
index 5371c303c..861f8d587 100644
--- a/examples/widgets/tutorials/modelview/6_treeview.py
+++ b/examples/widgets/tutorials/modelview/6_treeview.py
@@ -9,7 +9,7 @@ from PySide6.QtWidgets import QApplication, QMainWindow, QTreeView
"""PySide6 port of the widgets/tutorials/modelview/6_treeview example from Qt v6.x"""
-
+#! [1]
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
@@ -32,6 +32,7 @@ class MainWindow(QMainWindow):
def prepare_row(self, first, second, third):
return [QStandardItem(first), QStandardItem(second),
QStandardItem(third)]
+#! [1]
if __name__ == '__main__':
diff --git a/examples/widgets/tutorials/modelview/7_selections.py b/examples/widgets/tutorials/modelview/7_selections.py
index 129480bb7..6c519c865 100644
--- a/examples/widgets/tutorials/modelview/7_selections.py
+++ b/examples/widgets/tutorials/modelview/7_selections.py
@@ -9,7 +9,7 @@ from PySide6.QtWidgets import QApplication, QMainWindow, QTreeView
"""PySide6 port of the widgets/tutorials/modelview/7_selections example from Qt v6.x"""
-
+#! [1]
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
@@ -45,7 +45,9 @@ class MainWindow(QMainWindow):
# selection changes shall trigger a slot
selection_model = self._tree_view.selectionModel()
selection_model.selectionChanged.connect(self.selection_changed_slot)
+#! [1]
+#! [2]
@Slot(QItemSelection, QItemSelection)
def selection_changed_slot(self, new_selection, old_selection):
# get the text of the selected item
@@ -58,6 +60,7 @@ class MainWindow(QMainWindow):
seek_root = seek_root.parent()
hierarchy_level += 1
self.setWindowTitle(f"{selected_text}, Level {hierarchy_level}")
+#! [2]
if __name__ == '__main__':