我想制作一个QT4(使用QT设计器)对话框,其中包含一个必须选择文件的部分.
现在,我知道QFileDialog存在,我可以编写符合我想要的东西.但是我也可以在QT设计师中做到这一点吗?
有没有办法在QT设计器中获得"文件选择"小部件?或者,我记得这些按钮,将所选文件作为标题和一个小箭头,允许用户通过QFileDialog选择另一个文件?
那么有一个现成的解决方案,还是我必须自己编程?
我需要QLineEdit在表单上显示"浏览"按钮.当用户单击按钮时,QFileDialog应该打开,依此类推.
这很常见,但我找不到现成的解决方案.我期望在Qt Designer中有一些小部件QFileSelect,或类似的东西,但没有发现类似的东西.
我应该手工实施吗?或者,这样做的正确方法是什么?
我正在使用pyQt4,并希望在我的GUI中有一个"浏览"按钮,打开一个对话框,允许用户选择多个文件和文件夹.我已经研究了很多但是没有找到任何方法可以做到这一点.
QFileDialog.getOpenFileNames()只允许我选择文件,QFileDialog.getExistingDirectory()只允许选择目录.
有什么方法可以以某种方式结合他们的功能.理想情况下,我想使用nativeDialogs但似乎不可能.因此,我愿意在外观上妥协.有什么方法可以实现上述说法吗?
这里也提出了同样的问题,但答案是在c ++中.我需要一个python实现. 允许用户在QFileDialog中选择文件或文件夹
我尝试在Mac OS X中创建"另存为..."对话框.但我不想使用QFileDialog::getSaveFileName()函数,因为此函数创建的对话框在Mac OS X Lion中并非真正原生.所以我决定创建对话框作为QFileDialog对象:
auto export_dialog( new QFileDialog( main_window ) );
export_dialog->setWindowModality( Qt::WindowModal );
export_dialog->setFileMode( QFileDialog::AnyFile );
export_dialog->setAcceptMode( QFileDialog::AcceptSave );
Run Code Online (Sandbox Code Playgroud)
一切正常,除了一个问题.我无法为保存的文件设置默认名称,因此用户每次都必须手动输入此名称.我知道该函数QFileDialog::getSaveFileName()允许通过第三个参数dir(http://qt-project.org/doc/qt-4.8/qfiledialog.html#getSaveFileName)设置默认文件名.但是如何在没有此功能的情况下设置此默认名称?
我可以通过QFileDialog::setDefaultSuffix()函数为保存的文件设置默认后缀,但我需要设置整个默认名称,而不仅是默认后缀.
我试图使用QFileDialog::setDirectory()函数,但它只设置保存目录,没有保存文件的名称.
我在Mac OS X Lion上使用Qt 4.8.1.
在此先感谢您的帮助.
当使用a QFileDialog保存文件并指定扩展名(如*.pdf)并且用户键入没有此扩展名的名称时,保存的文件也没有此扩展名.
例如,代码:
QFileDialog fileDialog(this, "Choose file to save");
fileDialog.setNameFilter("PDF-Files (*.pdf)");
fileDialog.exec();
QFile pdfFile(fileDialog.selectedFiles().first());
Run Code Online (Sandbox Code Playgroud)
现在当用户输入"foo"作为名称时,文件将保存为"foo",而不是"foo.pdf".所以QFileDialog不会自动添加扩展名.我的问题:我怎么能改变这个?
我正在尝试使用QFileDialog来提示用户提供文件名和位置以保存文本文件.我玩了QtGui.QFileDialog.getSaveFileName,但我有兴趣使用一些选项,比如设置默认后缀,并启用保存文件对话框的详细信息视图,根据我的说法,这不是可以这样做,仅使用getSaveFileName.每当我设置它们时,getSaveFileName对话框就会忽略它们.
所以,我最终得到了这样的东西:
dlg=QtGui.QFileDialog( self )
dlg.setWindowTitle( 'Print Things' )
dlg.setViewMode( QtGui.QFileDialog.Detail )
dlg.setNameFilters( [self.tr('Text Files (*.txt)'), self.tr('All Files (*)')] )
dlg.setDefaultSuffix( '.txt' )
if dlg.exec_() :
print dlg
Run Code Online (Sandbox Code Playgroud)
但是,现在我不确定如何获取用户传递的文件的名称?如果我打印dlg.getSaveFileName,它只会弹出另一个保存文件对话框.任何人都知道如何做到这一点,同时仍然将所有选项传递给我想要尊重的QFileDialog?
我们正在构建一个Qt Quick应用程序,它必须能够以给定名称保存文件.
在FileDialog组件中,您只能设置目录.这不是非常用户友好,因为您不希望每次下载文件时手动输入文件名.
到目前为止我们尝试过不同的东
来自QtQuick.Dialogs的FileDialog:无法设置filename
通过QPlatformFileDialogHelper进行原生对话(淘气私有c ++ hack):无法在Linux(Gnome)上设置文件名
通过静态QFileDialog :: getSaveFileName()的原生对话框:在快速应用程序中,'父'没有可用的QWidget
QFileDialog实例的QT对话:由于未设置'parent',因此模态doeas不起作用.在快速应用程序中,没有可用于setParent()调用的QWidget
(使用带有QT 5.1和QtQuick 2.1的C++,包括所有桌面组件)
我希望用户能够输入将保存为xml文件的文件的名称.目前在Windows和Mac上,如果输入"test"作为文件名,它将自动添加".xml",这就是我想要的.不幸的是,在测试Linux版本时,我发现输入没有扩展名的文件名将保存为普通文件.用户必须在文件字符串中指定扩展名(即"test.xml"),以便以正确的格式保存.
我正在使用的代码如下.这是一个Qt错误还是有一种方法在Qt中指定它应该添加一个扩展,如果没有找到?
// Get value for "dir". If the setting doesn't exist then use
// the the path in "defaultsave.directory"
QString prevPath = prevValues.value("dir", QString::fromStdString(
ConfigService::Instance().getString("defaultsave.directory"))).toString();
QString filter;
filter.append("Files (*.xml)");
filter += ";;AllFiles (*.*)";
QString groupingFile = QFileDialog::getSaveFileName(this, "Save Grouping file as", prevPath, filter);
Run Code Online (Sandbox Code Playgroud) 我不确定它是否可行,但是目前,当我显示一个打开的文件对话框时:
QString file = QFileDialog::getOpenFileName(this);
Run Code Online (Sandbox Code Playgroud)
显示的对话框不是Android的原生对话框.
相反,它看起来像这样(它也没有最大化):

我正在使用Qt 5.2.0 for Android.
根据getOpenFileName说明:
QString fileName = QFileDialog.getOpenFileName(this, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)"));
Run Code Online (Sandbox Code Playgroud)
当我关闭它时,如何让对话框记住最后一次的路径?
什么是tr意味着tr("Open File")什么?
谢谢