c++ - 如何在 Qt 中的后续函数调用中访问在函数内创建的小部件

标签 c++ qt qwidget

所以目前我有代码,在 C++ 中,当从 QComboBox 中进行选择时,它会创建一些 QLabel、一个 QLineEdit 和一个 QCheckBox。但是,我希望能够访问我在以后的函数中创建的小部件,以便在从组合框中进行新选择时销毁它们。我可以通过执行 ui->Object 来访问使用 Designer 创建的对象,但是我无法使用我自己的代码创建的对象来访问这些对象。我能以某种方式做到这一点吗,因为我知道如何处理它。

简而言之,我希望能够根据用户所做的选择动态创建/销毁 QWidget。是否有我应该知道的引用或任何文档?或者我只是完全以错误的方式解决这个问题?这是我目前用于创建对象的代码:

   if (eventType == QString::fromStdString("Birthday"))
   {

   QLabel *label1 = new QLabel ("Celebrant: ");
   QLabel *label2 = new QLabel ("Surprise: ");
   QLineEdit *lineEdit = new QLineEdit;
   QCheckBox *box = new QCheckBox;

   ui->gridLayout->addWidget(label1,3,0,1,1, 0);
   ui->gridLayout->addWidget(label2,4,0,1,1,0);
   ui->gridLayout->addWidget(lineEdit,3,1,1,1,0);
   ui->gridLayout->addWidget(box,4,1,1,2,0);

   }

最佳答案

如果您给它们命名(使用 setObjectName()),您稍后可以使用 QObject::findChildren() 找到它们。

但是将它们存储在成员变量中不是更容易吗?

关于c++ - 如何在 Qt 中的后续函数调用中访问在函数内创建的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035422/

相关文章:

c++ - 如何在 Windows 上将串行数据从 Python 脚本发送到 Arduino - 没有用

c++ - 可调用的完美转发

c++ - QMetaObject::connectSlotsByName 错误

c++ - Q_OBJECT 导致 'undefined reference to v_table' 问题

c++ - 您对这个 C++ 表达式有什么期望?

c++ - 在 C++ 中遍历一个常量元组列表

c++ - 如何在 QWidgetAction 的子类中设置小部件的可见性

c++ - 使用 QDomDocument 类的 xml 文件中的 Lastchild

qt - 如何在QCheckBox中的文本和复选框之间绘制一个正方形

c++ - QWidget 在另一个小部件上