向 QFileDialog 添加附加控件
我正在使用本机文件对话框,因此没有 layout()
但想向对话框添加额外的控件。内置记事本应用程序有一个完美的示例,它们允许用户选择所需的编码(见下文,“保存”按钮左侧)。是否可以在 Qt5 中添加额外的控件,同时仍然使用本机对话框?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
TL;DR:完全自定义的组件不适用于本机对话框,可以使用
QFileDialog::setNameFilters
。Qt 的本机 Windows 文件对话框的实现使用
ABI::Windows::Storage::Pickers
。您可以在此处查看实现< /a>.根据您执行的操作类型,实现使用IFileOpenPicker
、IFolderPicker
或IFileSavePicker
。如果您想操作本机对话框,此类必须为您提供执行此操作的选项。我们可以找到 FileSavePicker 类的文档 此处。
查看可用选项,您会发现没有界面可提供任何特定的自定义 UI 元素。如果您只需要过滤器,QFileDialog 可以让您使用
QFileDialog::setNameFilters
。如果您需要完全自定义的控件/功能,不幸的是您必须提供自己的 QDialog。TL;DR: Completely custom components are not available with native dialogs, filters can be controlled using
QFileDialog::setNameFilters
.Qt's implementation of the native windows file dialog uses
ABI::Windows::Storage::Pickers
. You can check the implementation out here. Depending on the type of action you perform, the implementation usesIFileOpenPicker
,IFolderPicker
orIFileSavePicker
.If you want to manipulate the native dialog, this class would have to provide you with the option to do so. We can find the documentation for the
FileSavePicker
class here.Going through the available options, you see that there is no interface to provide any specific custom UI element. If you would only need the filter, the QFileDialog provides you with the ability to set a filter using
QFileDialog::setNameFilters
. If you need a completely custom control/functionality, you unfortunately have to provide your own QDialog.