所以目前我有代码,在 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/