如何将 qwidget 添加到 qlist<qwidget>
How to add qwidget to qlist<qwidget>
我有几个小部件,比如
QLineEdit m_namePoiFilter;
QLineEdit m_ID_MSSIPoiFilter;
我想将它们添加到 qwidget 列表中,然后将它们全部设置为可见。
我做了
QList<QWidget> m_PoiFilterWidgets;
但我不能像这样添加项目给它
m_PoiFilterWidgets.push_back(m_namePoiFilter);
您需要通过指针保存它们,并且应该使用开销较低的容器,例如 std::array
. 例如:
class Foo {
QLineEdit m_namePoiFilter;
QLineEdit m_ID_MSSIPoiFilter;
std::array<QLineEdit*, 2> const m_edits = {&m_namePoiFilter, &m_ID_MSSIPoiFilter};
};
这段代码不会通过构造来晃动指针:m_edits
将在小部件被构造后构造,并将在小部件被销毁之前被销毁:因此它的内容始终有效。
我会避免QList
/QVector
,因为这些在堆上分配 - 在您的情况下不必要。
定义
QWidgets的QObjects是不可复制的。这意味着您必须将它们存储在列表中作为指向小部件的指针(即 QList<QWidget *>
)。
相关文章:
- EASTL矢量<向量<int>>连续的
- 如何在QT Creator上将QWidget声明为继承类的对象
- QWidget::p aintEngine:不应再在 QTreeWidget 派生类中调用
- 将一个 QWidget 链接到另一个新创建的 QWidget
- 为什么 isVisible 在 QWidget 孩子中不起作用
- 如何声明全局QWidget?
- QWidget UI 在使用 QQuickWidget 时冻结
- "(QWidget* pobj=0)"和"(QWidget* pwgt/*=0/)&quo
- qt QWidget::closeEvent link issue
- 如何在QMdiSubWindow关闭后删除QWidget
- 如何在QGraphicsView中移动QWidget?
- QPainter的QWidget滚动条
- 在类中创建 QWidget
- 在另一个小部件中更改QWidget的背景颜色
- 使用 QMediaPlayer 时出现"QWidget::paintEngine: Should no longer be called"
- QWidget收听其他QWidgets事件
- 为提升的小部件设置父 QWidget
- 如何制作可以缩放和绘制的画布QWidget?
- 在 QWidget 中的 QGraphicsScene 中绘制
- 如何将不在 QT 全局范围内的函数附加到 Qwidget 上