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