gpt4 book ai didi

c++ - 如何将 qwidget 添加到 qlist

转载 作者:行者123 更新时间:2023-11-30 05:18:48 31 4
gpt4 key购买 nike

我有几个小部件,比如

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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com