Fluent-Qt

基础能力

表单与校验

跟踪字段状态,并正确处理异步校验结果。

添加字段

把每个输入控件放进 layout::Field,再用 FormController::addField() 加入。控制器借用字段,跟踪它是否修改过、访问过、正在校验或已通过,并把状态显示在字段上。字段值和校验规则仍由应用代码负责。每次值变化都要调用 markFieldChanged(),包括代码中的修改。

#include <FluentQt/Foundation.h>
#include <FluentQt/Layout.h>

auto* form = new fluent::FormController(this);
form->addField("email", emailField);  // emailField: fluent::layout::Field*
QObject::connect(emailEdit, &QLineEdit::textChanged, form, [form] {
    form->markFieldChanged("email");
});

异步校验

收到 validationRequested(key, token) 后执行校验,完成时把同一个 token 传给 completeValidation(key, token, valid, message)。如果校验完成前字段被修改或重置,旧 token 会被忽略。

API 参考