我有几个小部件,像如何添加到QWidget的<qwidget>的QList
QLineEdit m_namePoiFilter;
QLineEdit m_ID_MSSIPoiFilter;
我想将它们添加到qwidgets的列表,然后将所有的人都看到。
我已经
QList<QWidget> m_PoiFilterWidgets;
但我不能将项目添加到它像
m_PoiFilterWidgets.push_back(m_namePoiFilter);
我有几个小部件,像如何添加到QWidget的<qwidget>的QList
QLineEdit m_namePoiFilter;
QLineEdit m_ID_MSSIPoiFilter;
我想将它们添加到qwidgets的列表,然后将所有的人都看到。
我已经
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
因为这些分配在堆上 - 不必要的在你的情况。
的QObject,从QWidgets定义,是不可复制的。这意味着您必须将它们存储在列表中作为指向小部件的指针(即QList<QWidget *>
)。
你能举个例子吗,设置可见度? – Andre
只需遍历列表中的每个元素,并为每个元素使用'setVisible(true)'或'show'。 – owacoder