作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个小部件,比如
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
,因为它们在堆上分配 - 在您的情况下是不必要的。
关于c++ - 如何将 qwidget 添加到 qlist<qwidget>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41444842/
我是一名优秀的程序员,十分优秀!