大家好,又见面了,我是全栈君。
今天我们来学习QT里面的颜色对话框,那么在 Qt 中提供了预定义的颜色对话框 QColorDialog 类,QColorDialog 类用于提供指定颜色的对话框部件,例如下面这个:
颜色对话框和我们之前介绍的消息对话框的使用方式一样,如下:
那么在 Qt 中的 QColor 类用来在程序中表示颜色的概念;QColor 类同时支持多种颜色表示方式:a> RGB:以红绿蓝为基准的三色模型。b> HSV:以色调、饱和度、明度为基准的六角锥体模型。c> CMYK:以天蓝、品红、×××、黑为基准的全彩印刷色彩模型。
下来我们就做个实验,Widget 头文件如下所示:
#include <QWidget>#include <QPushButton>
class Widget : public QWidget
{
Q_OBJECT
private:
QPushButton ColorDialogBtn;
QPushButton InputDialogBtn;
private slots:
void ColorDialogBtn_Clicked();
void InputDialogBtn_Clicked();
public:
Widget(QWidget *parent = 0);
~Widget();
};
Widget.cpp 如下所示
#include "Widget.h"#include <QDebug>
#include <QColorDialog>
#include <QInputDialog>
Widget::Widget(QWidget *parent) : QWidget(parent),
ColorDialogBtn(this), InputDialogBtn(this)
{
ColorDialogBtn.setText("Color Dialog");
ColorDialogBtn.move(20, 20);
ColorDialogBtn.resize(160, 30);
InputDialogBtn.setText("Input Dialog");
InputDialogBtn.move(20, 70);
InputDialogBtn.resize(160, 30);
resize(200, 200);
setFixedSize(200, 120);
connect(&ColorDialogBtn, SIGNAL(clicked()), this, SLOT(ColorDialogBtn_Clicked()));
connect(&InputDialogBtn, SIGNAL(clicked()), this, SLOT(InputDialogBtn_Clicked()));
}
void Widget::ColorDialogBtn_Clicked()
{
}
void Widget::InputDialogBtn_Clicked()
{
}
Widget::~Widget()
{
}
我们这个程序实现了带有两个按钮的界面,构建运行得到的效果如图所示:
可能细心的小伙伴已经发现了,在这两个按钮函数中我们并没有做什么事情,那么下来我们就在 Color Dialog 中实现下一个颜色编辑器,代码入下所示:
void Widget::ColorDialogBtn_Clicked()
{
QColorDialog dlg(this);
dlg.setWindowTitle("Color Editor"); // 设置窗口名称
dlg.setCurrentColor(QColor(100, 111, 222)); // 设置当前窗口颜色
if( dlg.exec() == QColorDialog::Accepted )
{
QColor color = dlg.selectedColor();
qDebug() << color;
qDebug() << color.red();
qDebug() << color.green();
qDebug() << color.blue();
qDebug() << color.hue();
qDebug() << color.saturation();
qDebug() << color.value();
}
}
我们再次构建运行下,点击 Color Dialog 按钮,出现入下界面:
我们点击 OK 后,打印出入下信息:
那么上面的数字是否有点熟悉呢?大家仔细观察下就知道那个和我们刚才弹出界面的属性一模一样。
下来我们再继续做 Input Dialog 按钮的信息,程序如下:
void Widget::InputDialogBtn_Clicked()
{
QInputDialog dlg(this);
dlg.setWindowTitle("Input Test");
dlg.setLabelText("Please input an integer:");
dlg.setInputMode(QInputDialog::IntInput); // 设置输入的是数字
dlg.setIntMinimum(0); // 设置输入数字的最小值是0
dlg.setIntMaximum(255); // 设置输入数字的最大值是255
if( dlg.exec() == QInputDialog::Accepted )
{
qDebug() << dlg.intValue();
}
}
我们再次构建运行,点击 Input Dialog 按钮后得到如下图所示的界面,
我们点击OK,打印出来的界面如下:
我们还可以输入文本信息,在代码中添加 dlg.setInputMode(QInputDialog::TextInput); 然后在打印时:qDebug() << dlg.textValue();最终我们运行得到的界面如图所示:
我们点击OK,打印出来的界面如下:
是不是跟我们输入的字符一样呢?肯定是啦!好了,今天关于颜色对话框的相关知识我们就先学习到这了。后面我们接着继续学习。
转载于:https://blog.51cto.com/12810168/2094033
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107602.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...