Qt QDockWidget::setWidget()在Windows上调用QAbstractItemModel::rowCount,但在Linux上不调用
考虑以下QabstracteModel子类:Qt QDockWidget::setWidget()在Windows上调用QAbstractItemModel::rowCount,但在Linux上不调用,qt,qtreeview,rowcount,qdockwidget,Qt,Qtreeview,Rowcount,Qdockwidget,考虑以下QabstracteModel子类: class MyItemModel : public QAbstractItemModel { Q_OBJECT public: (...) virtual int rowCount(const QModelIndex& parentIdx = QModelIndex()) const override; (...) }; 以及一个用于显示QTreeView的简单QDockWidget class DockWidge
class MyItemModel : public QAbstractItemModel {
Q_OBJECT
public:
(...)
virtual int rowCount(const QModelIndex& parentIdx = QModelIndex()) const override;
(...)
};
以及一个用于显示QTreeView的简单QDockWidget
class DockWidget : public QDockWidget {
Q_OBJECT
public:
DockWidget() {
view = new QTreeView();
setWidget(view);
}
private:
QTreeView *view;
}
如果在Windows上调用DockWidget构造函数,将调用MyItemModel::rowCount()。如果在Linux上使用此代码,MyItemModel::rowCount()不会被调用。这是正确的吗
我怀疑Qt for Windows在调用QDockWidget::setWidget()时会触发rowCount(),这在Linux上是不必要的。但这只是一个猜测
Qt版本4.8.3,Windows 7 64位,
Ubuntu包括32位和64位