我有幾個小部件,像如何添加到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