【问题标题】:QFileDialog - create files without an extensionQFileDialog - 创建没有扩展名的文件
【发布时间】:2013-05-12 16:19:01
【问题描述】:

我想使用 QFileDialog 来获取一个新目录的名称,我将在其中创建几个配置文件。

如果目录名称不包含扩展部分,那就太好了。如何强制用户不向 QFileDialog 提供 filename.extension?

我尝试使用以下代码:

QString fileName = 
    QFileDialog::getSaveFileName(this, tr("create a directory), 
                                QDir::homePath(), tr("Directories (*)"));

但显然它允许用户输入任何带或不带扩展名的文件名。还有其他想法吗?

【问题讨论】:

    标签: c++ qt qfiledialog


    【解决方案1】:

    你可以使用QFileDialog::GetExistingDirectory

    QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), QDir::homePath(),
                                                    QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
    

    请参阅QFileDialog Documentation。

    【讨论】:

    • 我试图强调这将是一个“新”目录。用户应提供名称,系统将创建目录及其内容。
    • 不要认为这是可能的。用户也应该能够使用该对话框创建目录。为什么要强制用户创建新目录?
    • 因为对用户来说它应该是透明的。他只是创建一个新文件(以某些应用程序特定的格式)。但实际上,我将它分成几个文件存储在一个目录中会容易得多。
    • 那么不知道...不要认为使用内置函数是可能的。虽然我真的不认为这里需要透明度,但您可以让用户创建一个文件,然后将其隐式保存为目录。但这当然是你的选择;)
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 2012-12-24
    • 2010-12-29
    • 2015-07-02
    • 1970-01-01
    • 2015-11-08
    相关资源
    最近更新 更多