gpt4 book ai didi

c++ - QT5 C++,有没有办法我可以在qlist容器中获取小部件的当前文本

转载 作者:行者123 更新时间:2023-12-03 07:23:06 24 4
gpt4 key购买 nike

我需要按在用户表单上显示的顺序检索文本。我正在尝试如下:

    QString line = "QLineEdit";
QString combo = "QComboBox";
QList<QWidget *> childWidgets = ui->frame_3->findChildren<QWidget *>();
QStringList data;

for(auto widget : childWidgets){
if(widget->metaObject()->className() == line || widget->metaObject()->className() == combo){
data.append(widget->text()); //append the text of the lineEdits and ComboBoxes to data
}
}
我从上面的代码中收到以下编译错误:

"no member named 'text' in QWidget

最佳答案

由于您指出了QWidget基类没有文本成员函数,因此您将需要直接访问QComboBox和QLineEdit来获取当前文本。

QList<QWidget *> childWidgets = ui->frame_3->findChildren<QWidget *>();
QStringList data;

for(auto widget : childWidgets){
auto combo = dynamic_cast<QComboBox*>(widget);
if (combo) {
data << combo->currentText(); // currentText() returns the text from the combobox
}
else {
auto lineEdit = dynamic_cast<QLineEdit*>(widget);
if (lineEdit) {
data << lineEdit->text(); // A line edit has a text() member.
}
}
}
此代码不处理排序。我相信顺序与添加到父级的顺序相同。

关于c++ - QT5 C++,有没有办法我可以在qlist容器中获取小部件的当前文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64492784/

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