【Qt开发笔记】Qt中关于文件对话框QFileDialog属性option以及对其qss样式修改

1.概述

在Qt中使用QFileDialog中的static函数getOpenFileName和getOpenFileNames函数可以打开文件对话框并返回选中的文件名,但是有时候会考虑到修改QFileDialog的qss样式表去使打开的文件对话框的样式与父界面的样式保持一致,这时候会发现无论是继承QFileDialog并对其设置qss还是在他的父界面中直接对其设置qss样式表都没有效果,这里我们就来解决这个问题。

2.解决

这里我们先写一个Demo,在widget中添加一个pushButton,在pushButton的槽函数中去打开QFileDialog。

QString fileName = QFileDialog::getOpenFileName(this, "select file", ".", "*");

编译后运行Demo,点击pushButton,弹出一个文件对话框。

这里写图片描述

其实这个时候打开的文件对话框可以理解为本地系统的文件对话框,无论对其怎么修改qss样式表都不会有任何的效果。

可以来看一下Qt文档中对getOpenFileName函数的描述。

QString QFileDialog::getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0)

其实这里就可以看到最后一个参数Option options = 0,跳转到Option。

这里写图片描述

Option是一个enum变量,其中有一个QFileDialog的属性是QFileDialog::DontUseNativeDialog,不要使用本机文件件对话框,默认情况下该属性是false。

在getOpenFileName函数中最后一个参数传入QFileDialog::DontUseNativeDialog。

QString fileName = QFileDialog::getOpenFileName(this, "select file", ".", "*", 0, QFileDialog::DontUseNativeDialog);

这个时候重新编译运行一下Demo,会发现点击pushButton后打开的文件对话框与之前的不同了。

这里写图片描述

这个时候再在父界面中对QFileDialog设置qss就会有效果了。

QFileDialog {
	background-color:red;
}

例如这里对QFileDialog的背景色设置为红色,看看效果。

这里写图片描述

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值