diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-08-08 15:07:12 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-08-11 09:12:56 +0200 |
commit | c4a266e38fe5bdce707ad6b123fa88bb4f10dff3 (patch) | |
tree | a7cc96a47dec82f5b11093ad9837cc221b8c6c8e /examples/widgets | |
parent | 89e5d35c0f002fcb1aac3b1205402ce306074255 (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')
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__': |