QFileDialog禁用按钮

时间:2012-09-01 17:23:45

标签: qt qt4 qfiledialog

我想创建一个QFileDialog的子类,它将用于仅打开具有某些特定内容的目录。我可以设置自己的代理模型来处理文件列表的行为,但是如何禁用/启用ok按钮? 我是否必须创建自己的小部件?

2 个答案:

答案 0 :(得分:2)

您应该可以通过安装proxy model来根据您的条件过滤文件和目录。

编辑:

这仅适用于隐藏不需要的文件的文件。但是你不能隐藏目录,因为你需要允许导航到它们。

要选择目录,您必须构建自己的对话框。是的,我认为这是Qt的一个缺陷。

答案 1 :(得分:2)

我能够执行以下操作来获取“保存”按钮:

QDialogButtonBox *button_box = findChild<QDialogButtonBox *>();
QPushButton *save_button;

if (button_box) {
    save_button = button_box->button(QDialogButtonBox::Save); // depends on acceptMode()
}