Polish the model/view tutorial examples
- Reorder the class declarations, moving private sections last - Make constructors explicit - Add space to the comments - Introduce auto - Replace slot MainWindow::showWindowTitle() by a direct connection to slot QWidget::setWindowTitle(). Change-Id: Ic229162434dfef5f2767d0b4e186759ca0f821f3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 8751ca3daeaa2a500a37b070cdcce5a5bb7a165f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
78a5890355
commit
002796928b
@ -12,7 +12,8 @@ class MyModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MyModel(QObject *parent = nullptr);
|
||||
explicit MyModel(QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
|
@ -10,7 +10,8 @@ class MyModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MyModel(QObject *parent = nullptr);
|
||||
explicit MyModel(QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
|
@ -11,14 +11,17 @@ class MyModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MyModel(QObject *parent = nullptr);
|
||||
explicit MyModel(QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
private:
|
||||
QTimer *timer;
|
||||
|
||||
private slots:
|
||||
void timerHit();
|
||||
|
||||
private:
|
||||
QTimer *timer;
|
||||
};
|
||||
|
||||
#endif // MYMODEL_H
|
||||
|
@ -10,7 +10,8 @@ class MyModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MyModel(QObject *parent = nullptr);
|
||||
explicit MyModel(QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
|
@ -11,15 +11,10 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
, tableView(new QTableView(this))
|
||||
{
|
||||
setCentralWidget(tableView);
|
||||
MyModel *myModel = new MyModel(this);
|
||||
auto *myModel = new MyModel(this);
|
||||
tableView->setModel(myModel);
|
||||
|
||||
// transfer changes to the model to the window title
|
||||
connect(myModel, &MyModel::editCompleted,
|
||||
this, &MainWindow::showWindowTitle);
|
||||
}
|
||||
|
||||
void MainWindow::showWindowTitle(const QString &title)
|
||||
{
|
||||
setWindowTitle(title);
|
||||
this, &QWidget::setWindowTitle);
|
||||
}
|
||||
|
@ -14,12 +14,11 @@ QT_END_NAMESPACE
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
|
||||
private:
|
||||
QTableView *tableView;
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
public slots:
|
||||
void showWindowTitle(const QString &title);
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
@ -16,14 +16,16 @@ QT_END_NAMESPACE
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
|
||||
private:
|
||||
QTreeView *treeView;
|
||||
QStandardItemModel *standardModel;
|
||||
QList<QStandardItem *> prepareRow(const QString &first,
|
||||
const QString &second,
|
||||
const QString &third) const;
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
|
||||
QTreeView *treeView;
|
||||
QStandardItemModel *standardModel;
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
@ -14,18 +14,18 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
, standardModel(new QStandardItemModel(this))
|
||||
{
|
||||
setCentralWidget(treeView);
|
||||
QStandardItem *rootNode = standardModel->invisibleRootItem();
|
||||
auto *rootNode = standardModel->invisibleRootItem();
|
||||
|
||||
|
||||
// defining a couple of items
|
||||
QStandardItem *americaItem = new QStandardItem("America");
|
||||
QStandardItem *mexicoItem = new QStandardItem("Canada");
|
||||
QStandardItem *usaItem = new QStandardItem("USA");
|
||||
QStandardItem *bostonItem = new QStandardItem("Boston");
|
||||
QStandardItem *europeItem = new QStandardItem("Europe");
|
||||
QStandardItem *italyItem = new QStandardItem("Italy");
|
||||
QStandardItem *romeItem = new QStandardItem("Rome");
|
||||
QStandardItem *veronaItem = new QStandardItem("Verona");
|
||||
auto *americaItem = new QStandardItem("America");
|
||||
auto *mexicoItem = new QStandardItem("Canada");
|
||||
auto *usaItem = new QStandardItem("USA");
|
||||
auto *bostonItem = new QStandardItem("Boston");
|
||||
auto *europeItem = new QStandardItem("Europe");
|
||||
auto *italyItem = new QStandardItem("Italy");
|
||||
auto *romeItem = new QStandardItem("Rome");
|
||||
auto *veronaItem = new QStandardItem("Verona");
|
||||
|
||||
// building up the hierarchy
|
||||
rootNode-> appendRow(americaItem);
|
||||
@ -59,7 +59,7 @@ void MainWindow::selectionChangedSlot(const QItemSelection & /*newSelection*/, c
|
||||
// find out the hierarchy level of the selected item
|
||||
int hierarchyLevel = 1;
|
||||
QModelIndex seekRoot = index;
|
||||
while (seekRoot.parent() != QModelIndex()) {
|
||||
while (seekRoot.parent().isValid()) {
|
||||
seekRoot = seekRoot.parent();
|
||||
hierarchyLevel++;
|
||||
}
|
||||
|
@ -16,13 +16,15 @@ QT_END_NAMESPACE
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
|
||||
private slots:
|
||||
void selectionChangedSlot(const QItemSelection &newSelection, const QItemSelection &oldSelection);
|
||||
|
||||
private:
|
||||
QTreeView *treeView;
|
||||
QStandardItemModel *standardModel;
|
||||
private slots:
|
||||
void selectionChangedSlot(const QItemSelection &newSelection, const QItemSelection &oldSelection);
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user