这个问题很简单,在标题中。
谷歌搜索对此没有帮助。如何让 QFileDialog 在其保存名称字段上使用 QValidator?
谢谢。
这个问题很简单,在标题中。
谷歌搜索对此没有帮助。如何让 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();
}
快速测试表明它似乎工作得很好。就像我说的那样:它确实感觉有点杂乱无章。