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
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
MyModel(QObject *parent = nullptr);
|
explicit MyModel(QObject *parent = nullptr);
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
int columnCount(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;
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||||
|
@ -10,7 +10,8 @@ class MyModel : public QAbstractTableModel
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
MyModel(QObject *parent = nullptr);
|
explicit MyModel(QObject *parent = nullptr);
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
int columnCount(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;
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||||
|
@ -11,14 +11,17 @@ class MyModel : public QAbstractTableModel
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
MyModel(QObject *parent = nullptr);
|
explicit MyModel(QObject *parent = nullptr);
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
int columnCount(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;
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||||
private:
|
|
||||||
QTimer *timer;
|
|
||||||
private slots:
|
private slots:
|
||||||
void timerHit();
|
void timerHit();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QTimer *timer;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MYMODEL_H
|
#endif // MYMODEL_H
|
||||||
|
@ -10,7 +10,8 @@ class MyModel : public QAbstractTableModel
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
MyModel(QObject *parent = nullptr);
|
explicit MyModel(QObject *parent = nullptr);
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
int columnCount(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;
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||||
|
@ -11,15 +11,10 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
, tableView(new QTableView(this))
|
, tableView(new QTableView(this))
|
||||||
{
|
{
|
||||||
setCentralWidget(tableView);
|
setCentralWidget(tableView);
|
||||||
MyModel *myModel = new MyModel(this);
|
auto *myModel = new MyModel(this);
|
||||||
tableView->setModel(myModel);
|
tableView->setModel(myModel);
|
||||||
|
|
||||||
// transfer changes to the model to the window title
|
// transfer changes to the model to the window title
|
||||||
connect(myModel, &MyModel::editCompleted,
|
connect(myModel, &MyModel::editCompleted,
|
||||||
this, &MainWindow::showWindowTitle);
|
this, &QWidget::setWindowTitle);
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::showWindowTitle(const QString &title)
|
|
||||||
{
|
|
||||||
setWindowTitle(title);
|
|
||||||
}
|
}
|
||||||
|
@ -14,12 +14,11 @@ QT_END_NAMESPACE
|
|||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit MainWindow(QWidget *parent = nullptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTableView *tableView;
|
QTableView *tableView;
|
||||||
public:
|
|
||||||
MainWindow(QWidget *parent = nullptr);
|
|
||||||
public slots:
|
|
||||||
void showWindowTitle(const QString &title);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
@ -16,14 +16,16 @@ QT_END_NAMESPACE
|
|||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit MainWindow(QWidget *parent = nullptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTreeView *treeView;
|
|
||||||
QStandardItemModel *standardModel;
|
|
||||||
QList<QStandardItem *> prepareRow(const QString &first,
|
QList<QStandardItem *> prepareRow(const QString &first,
|
||||||
const QString &second,
|
const QString &second,
|
||||||
const QString &third) const;
|
const QString &third) const;
|
||||||
public:
|
|
||||||
MainWindow(QWidget *parent = nullptr);
|
QTreeView *treeView;
|
||||||
|
QStandardItemModel *standardModel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
@ -14,18 +14,18 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
, standardModel(new QStandardItemModel(this))
|
, standardModel(new QStandardItemModel(this))
|
||||||
{
|
{
|
||||||
setCentralWidget(treeView);
|
setCentralWidget(treeView);
|
||||||
QStandardItem *rootNode = standardModel->invisibleRootItem();
|
auto *rootNode = standardModel->invisibleRootItem();
|
||||||
|
|
||||||
|
|
||||||
// defining a couple of items
|
// defining a couple of items
|
||||||
QStandardItem *americaItem = new QStandardItem("America");
|
auto *americaItem = new QStandardItem("America");
|
||||||
QStandardItem *mexicoItem = new QStandardItem("Canada");
|
auto *mexicoItem = new QStandardItem("Canada");
|
||||||
QStandardItem *usaItem = new QStandardItem("USA");
|
auto *usaItem = new QStandardItem("USA");
|
||||||
QStandardItem *bostonItem = new QStandardItem("Boston");
|
auto *bostonItem = new QStandardItem("Boston");
|
||||||
QStandardItem *europeItem = new QStandardItem("Europe");
|
auto *europeItem = new QStandardItem("Europe");
|
||||||
QStandardItem *italyItem = new QStandardItem("Italy");
|
auto *italyItem = new QStandardItem("Italy");
|
||||||
QStandardItem *romeItem = new QStandardItem("Rome");
|
auto *romeItem = new QStandardItem("Rome");
|
||||||
QStandardItem *veronaItem = new QStandardItem("Verona");
|
auto *veronaItem = new QStandardItem("Verona");
|
||||||
|
|
||||||
// building up the hierarchy
|
// building up the hierarchy
|
||||||
rootNode-> appendRow(americaItem);
|
rootNode-> appendRow(americaItem);
|
||||||
@ -59,7 +59,7 @@ void MainWindow::selectionChangedSlot(const QItemSelection & /*newSelection*/, c
|
|||||||
// find out the hierarchy level of the selected item
|
// find out the hierarchy level of the selected item
|
||||||
int hierarchyLevel = 1;
|
int hierarchyLevel = 1;
|
||||||
QModelIndex seekRoot = index;
|
QModelIndex seekRoot = index;
|
||||||
while (seekRoot.parent() != QModelIndex()) {
|
while (seekRoot.parent().isValid()) {
|
||||||
seekRoot = seekRoot.parent();
|
seekRoot = seekRoot.parent();
|
||||||
hierarchyLevel++;
|
hierarchyLevel++;
|
||||||
}
|
}
|
||||||
|
@ -16,13 +16,15 @@ QT_END_NAMESPACE
|
|||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit MainWindow(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void selectionChangedSlot(const QItemSelection &newSelection, const QItemSelection &oldSelection);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTreeView *treeView;
|
QTreeView *treeView;
|
||||||
QStandardItemModel *standardModel;
|
QStandardItemModel *standardModel;
|
||||||
private slots:
|
|
||||||
void selectionChangedSlot(const QItemSelection &newSelection, const QItemSelection &oldSelection);
|
|
||||||
public:
|
|
||||||
MainWindow(QWidget *parent = nullptr);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user