这个问题很简单,在标题中。
谷歌搜索对此没有帮助。 如何让 QFileDialog 在其保存名称字段上使用 QValidator?
谢谢。
以下内容有点笨拙,但似乎有效。
您可以使用QObject::findChildren
来查找对话框的QLineEdit
子小组件。 假设只有一个这样的小部件,那么您可以将验证器应用于它......
QFileDialog fd;
auto children = fd.findChildren<QLineEdit *>();
if (children.size() == 1) {
/*
* Apply a validator that forces the user to enter a name
* beginning with a lower case `a' -- a bit pointless but...
*/
QRegExpValidator validator(QRegExp("^a"));
/*
* Apply the validator.
*/
children.front()->setValidator(&validator);
fd.exec();
}
快速测试表明它似乎工作得很好。 就像我说的:这确实感觉有点笨拙。