QWidget findChildren when objectname contains a specific string
QWidget findChildren when objectname contains a specific string
如何列出对象名称中包含特定字符串的 qwidget 的所有子对象?
例如,如果我有:
"general_widget", with children:
"label_name_1"
"label__1"
"label_name_2"
"label_id_2"
"label_name_3"
"label_id_3"
"label_name_4"
"label_id_4"
我想获取包含 "name" 作为 objectName 的一部分的所有子项的列表,以及包含包含 "id" 的所有子项的另一个列表。谢谢!
有一个像这样的简单函数:
QList<QWidget *> widgets(QWidget * parent, QString search)
{
QRegularExpression exp(search);
return parent->findChildren<QWidget *>(exp);
}
给定一个 QWidget * widget
你可以这样称呼它:
auto name_list = widgets(widget, "name");
auto id_list = widgets(widget, "id");
将 findChildren()
与 objectName().contains()
一起使用,例如:
QList<QWidget*> subwidgets = this->findChildren<QWidget*>();
QListIterator<QWidget*> it(subwidgets); // iterate through the list of widgets
QWidget *awiget;
while (it.hasNext()) {
awiget = it.next(); // take each widget in the list
if (awiget->objectName().contains("name")){
qDebug() << awiget->objectName();
}
}
如何列出对象名称中包含特定字符串的 qwidget 的所有子对象?
例如,如果我有:
"general_widget", with children:
"label_name_1"
"label__1"
"label_name_2"
"label_id_2"
"label_name_3"
"label_id_3"
"label_name_4"
"label_id_4"
我想获取包含 "name" 作为 objectName 的一部分的所有子项的列表,以及包含包含 "id" 的所有子项的另一个列表。谢谢!
有一个像这样的简单函数:
QList<QWidget *> widgets(QWidget * parent, QString search)
{
QRegularExpression exp(search);
return parent->findChildren<QWidget *>(exp);
}
给定一个 QWidget * widget
你可以这样称呼它:
auto name_list = widgets(widget, "name");
auto id_list = widgets(widget, "id");
将 findChildren()
与 objectName().contains()
一起使用,例如:
QList<QWidget*> subwidgets = this->findChildren<QWidget*>();
QListIterator<QWidget*> it(subwidgets); // iterate through the list of widgets
QWidget *awiget;
while (it.hasNext()) {
awiget = it.next(); // take each widget in the list
if (awiget->objectName().contains("name")){
qDebug() << awiget->objectName();
}
}