检查表格QT-Dialog并重复使用。

问题描述 投票:0回答:1

我有一个QDialog,有许多QLineEdit和许多QComboBox来编译一个表单,我想找到一个很好的方法和重用来检查是否所有的字段都被填满了,我想创建一个QList指针QWidgets和用foreach检查所有,但QWidget类没有text->isEmpty()函数,有人能给我一个主意吗?

qt widget solution is-empty check
1个回答
0
投票

如果你有一个容器来保存你的表单widgets的指针,你可以实现一个函数来迭代widgets,检查widgets的类型并验证特定的属性,这取决于该类型。例如,我使用

bool isFormComplete(const QList<QWidget *> &widgets)
{
    for ( auto w : widgets ) {
        if ( auto lineEdit = qobject_cast<QLineEdit *>(w) ) {
            if ( lineEdit->text().isEmpty() ) {
                // An empty edit box.
                return false;
            }
        } else  if ( auto combo = qobject_cast<QComboBox *>(w) ) {
            if ( combo->count() == 0 ) {
                // An empty combo box.
                return false;
            }
        }
    }
    return true;
}

我在这里使用 qobject_cast() 函数来验证小组件类型。

© www.soinside.com 2019 - 2024. All rights reserved.