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