如果我只想说标识符文件名,如何将 QRegexpValidator 附加到 QFileDialog



这个问题很简单,在标题中。

谷歌搜索对此没有帮助。 如何让 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();
}

快速测试表明它似乎工作得很好。 就像我说的:这确实感觉有点笨拙。

相关内容

  • 没有找到相关文章

最新更新