C++ Qt QColorDialog怎么使用

C++ Qt QColorDialog怎么使用

这篇文章主要介绍“C++QtQColorDialog怎么使用”,在日常操作中,相信很多人在C++QtQColorDialog怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++QtQColorDialog怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Qt提供了颜色选择框,如下图:

QColorDialog使用方法

例如下面的代码,点击按钮弹出颜色选择框,选择颜色,改变QLabel的背景色

#include"widget.h"#include"ui_widget.h"#include<QColorDialog>#include<QPalette>Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);ui->label->setText(u8"我是lable");}Widget::~Widget(){deleteui;}voidWidget::on_btn1_clicked(){QColorcolor=QColorDialog::getColor(Qt::white,this,u8"选择颜色");if(color.isValid()){QPalettepalette;palette.setColor(QPalette::Background,color);ui->label->setAutoFillBackground(true);ui->label->setPalette(palette);}}

效果如下:

getColor的调用

getColor声明如下:

staticQColorgetColor(constQColor&initial=Qt::white,QWidget*parent=nullptr,constQString&title=QString(),ColorDialogOptionsoptions=ColorDialogOptions());

第一个参数是默认的颜色,例如我在上面的代码中,直接设为白色
第二个参数是父窗口指针
第三个是颜色对话框窗口标题

QPalette setColor

setColor的声明如下:

inlinevoidQPalette::setColor(ColorRoleacr,constQColor&acolor)

可以使用QColorDialog返回的颜色直接构造QPalette,注意setColor的第一个参数需要一个ColorRole, 可以参看如下说明:

enumColorRole{WindowText,Button,Light,Midlight,Dark,Mid,Text,BrightText,ButtonText,Base,Window,Shadow,Highlight,HighlightedText,Link,LinkVisited,AlternateBase,NoRole,ToolTipBase,ToolTipText,PlaceholderText,NColorRoles=PlaceholderText+1,#ifQT_DEPRECATED_SINCE(5,13)ForegroundQ_DECL_ENUMERATOR_DEPRECATED_X("UseQPalette::WindowTextinstead")=WindowText,BackgroundQ_DECL_ENUMERATOR_DEPRECATED_X("UseQPalette::Windowinstead")=Window#endif};

例如上面的代码是修改Label的背景颜色,那么就需要使用Background枚举体,如果改变文本就使用Text.

到此,关于“C++QtQColorDialog怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

发布于 2022-01-17 22:03:05
收藏
分享
海报
0 条评论
44
上一篇:Python OpenCV中如何进行特征点检测与匹配 下一篇:SQL基础查询和LINQ集成化查询是怎样的
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码