在Qt中怎么设置QFileDialog对话框的文字颜色和背景颜色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Qt中怎么设置QFileDialog对话框的文字颜色和背景颜色?相关的知识,希望对你有一定的参考价值。

在Qt中怎么设置QFileDialog对话框的文字颜色和背景颜色?
QFileDialog弹出窗口的文字(文件名等信息)颜色和背景颜色一致,无法看清。不知道怎么去更改颜色?

Qt5 QPlainTextEdit设置背景颜色代码如下:
codeeditor->setStyleSheet("background-color:lightYellow;");
文字的颜色设置:
QPlainTextEdit edit;
QPalette p = edit.palette();
p.setColor(QPalette::Active, QPalette::Base, Qt::red);
p.setColor(QPalette::Inactive, QPalette::Base, Qt::red);
edit.setPalette(p);
Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于ios的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对android支持做出了调整,至此实现了全面支持iOS、Android、WP。
参考技术A 试一下setStylesheet("color:red;background-color:black");追问

问题是,文字和背景颜色一致,无法看清。你说的这个方法,我试过,不行的

追答

widget->setStyleSheet("QFileDialogbackground-color:rgb(90,90,90);");这种方式呢?

追问

还是不行的

参考技术B 你的问题解决了吗 我也遇到一样的问题

在 QFileDialog 布局中调整按钮小部件的大小

【中文标题】在 QFileDialog 布局中调整按钮小部件的大小【英文标题】:Resize the button widget in QFileDialog layout 【发布时间】:2013-12-13 09:55:14 【问题描述】:

如何改变 QFileDialog 中按钮的大小?我尝试了以下代码;它可以编译,但如果我尝试加载文件对话框,应用程序会意外退出。

请让我知道出了什么问题。我是 QT 的新手。 :(

        QFileDialog *fdiag = new QFileDialog();
        QGridLayout *glayout = static_cast <QGridLayout*>(fdiag->layout());

        QLayoutItem *li = glayout->itemAtPosition(3,3);

        QRect buttonRect = li->geometry() ;
        int newHeight = buttonRect.height() + 20;
        int newWidth = buttonRect.height() + 20;
        buttonRect.setHeight(newHeight);
        buttonRect.setWidth(newWidth);
        li->setGeometry(buttonRect);

        fdiag->resize(720,480);
        fdiag->setWindowTitle("Media Folder");

        fdiag->exec();

【问题讨论】:

【参考方案1】:

您可以只使用样式表:

QFileDialog *fdiag = new QFileDialog;
fdiag->setStyleSheet("QPushButtonmin-height: 40px; min-width: 200px;");

或者,如果您只想调整特定按钮的大小:

QDialogButtonBox *box = fdiag->findChild<QDialogButtonBox*>();
if(box)

    QPushButton *button = box->button(QDialogButtonBox::Open);
    if(button)
    
        button->setMinimumHeight(40);
        button->setMinimumWidth(200);
    

【讨论】:

如何使用 setStyleSheet 更改 QFileDialog 的字体属性?如果有人可以发布代码,那就太好了。 @Bhush 您需要更具体一些。什么字体?按钮?还是整个对话?【参考方案2】:

由于我最近遇到了这个问题,使用 Qt5 - 由于某些原因在 Qt4 中它起作用了 - 你需要确保 Qt 从 layout() 返回的不是 Null。

您需要使用选项QFileDialog::DontUseNativeDialog 初始化系统对话框,例如dlg-&gt;setOption(QFileDialog::DontUseNativeDialog, true);

【讨论】:

以上是关于在Qt中怎么设置QFileDialog对话框的文字颜色和背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何修改Qt标准对话框的文字

如何修改Qt标准对话框的文字

Qt Quick 2 应用程序中的非本机对话框

Qt选取文件路径,上一次的文件路径

Qt标准对话框

在 QFileDialog 布局中调整按钮小部件的大小