欢迎小伙伴的点评✨✨,相互学习、互关必回、全天在线🍳🍳🍳
博主🧑🧑 本着开源的精神交流Qt开发的经验、将持续更新续章,为社区贡献博主自身的开源精神👩🚀
前言
本章节将会给大家带来标准颜色对话框QColorDialog 类的详细使用方法一、getColor()函数说明
getColor() 函数是标准颜色对话框 QColorDialog 类的一个静态函数,该函数返回用户选择的颜色值。下面是 getColor()函数形式:
QColor getColor
(
const QColor& initial=Qt::white, //注
QWidget* parent=O //标准颜色对话框的父窗口
);
注:指定了默认选中的颜色,默认为白色。通过 QColor::isValid()函数可以判断用户选择的颜色是否有效,但是当用户选择文件时,如果选择“取消" (Cancel), 则 QColor::isValid()函数将返回 false 。
二、效果实例
图一
三、原码详解
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QPushButton>
#include <QColorDialog>
#include <QFrame>
#include <QGridLayout>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = nullptr);
~Dialog();
private:
Ui::Dialog *ui;
QPushButton *colorBtn;
QFrame *colorFram;
QGridLayout *mainLayout;
private slots:
void showColor();
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
colorBtn = new QPushButton;
colorBtn->setText(tr("颜色标准对话框实例"));
colorFram = new QFrame;
colorFram->setFrameShape(QFrame::Box);
colorFram->setAutoFillBackground(true);
mainLayout = new QGridLayout(this);
mainLayout->addWidget(colorBtn,1,0);
mainLayout->addWidget(colorFram,1,1);
connect(colorBtn,SIGNAL(clicked()),this,SLOT(showColor()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::showColor()
{
QColor c=QColorDialog::getColor(Qt::blue);
if(c.isValid())
{
colorFram->setPalette(QPalette(c));
}
}
main.cpp
#include "dialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
四、总结
标准颜色对话框getColor函数也是在应用程序中经常用到的