这个问题在标题中非常简单。
谷歌搜索对此没有帮助。如何让QFileDialog在其保存名称字段中使用QValidator?
感谢。
答案 0 :(得分:1)
以下是有点像kludge,但似乎有用。
您可以使用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();
}
快速测试表明它看起来效果很好。就像我说的那样:它确实感觉像是一块垃圾。