QT之颜色对话框

今天我们来学习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,打印出来的界面如下:

是不是跟我们输入的字符一样呢?肯定是啦!好了,今天关于颜色对话框的相关知识我们就先学习到这了。后面我们接着继续学习。

以上内容来自狄泰软件学院的QT教程,欢迎大家一起来学习,可以加我QQ:243343083,一起学习。狄泰技术交流群:199546072

原文地址:http://blog.51cto.com/12810168/2094033

时间: 2024-10-11 16:07:12

QT之颜色对话框的相关文章

QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的API,一种是使用QMessageBox的静态方法. 后者书写容易,但缺少灵活性,针对用户给出的提示的信息不够丰富,并且不能自定义消息对话框里面的按钮提示信息.因此推荐第一种写法. [cpp] view plaincopy <span style="font-size:18px;"&

PyQt4颜色对话框QColorDialog

QColorDialog提供了用于显示颜色的对话框. #!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class ColorDialog(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self) color = QtGui.QColor(0, 0, 0) self.setGe

(转载)VS2010/MFC编程入门之十九(对话框:颜色对话框)

鸡啄米在上一节中为大家讲解了字体对话框的使用方法,熟悉了字体对话框,本节继续讲另一种通用对话框--颜色对话框. 颜色对话框大家肯定也不陌生,我们可以打开它选择需要的颜色,简单说,它的作用就是用来选择颜色.MFC中提供了CColorDialog类封装了颜色对话框的所有操作,我们可以通过它显示颜色对话框,并获取颜色对话框中选择的颜色.颜色对话框跟字体对话框一样,也是一种模态对话框. CColorDialog类的构造函数 CColorDialog(   COLORREF clrInit = 0,  

QT 打开文件对话框总结

Qstring fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ",  tr("Allfile(*.*);;mp3file(*.mp3)")); 说明:这样就会产生一个对话框,和系统的资源管理器差不多的.返回的是你选择文件的 绝对路径. 参数1:父窗口 参数2:对话框的标题 参数3:默认的打开的位置,如"我的文档"等 参数4:文件的过滤器,注意文

win32调用系统颜色对话框

参考网站:http://blog.csdn.net/u013242177/article/details/50437358 首先要包含commdlg.h头文件,这个是通用对话框的头文件,包括文件对话框,颜色对话框,打印对话框等. 然后再声明一个CHOOSECOLOR类型的变量,声明一个COLORREF类型的变量rgbLineColor,用来存储用户选择的颜色. static CHOOSECOLOR stChooseColor; static COLORREF rgbLineColor; 其中CH

pyqt5之QColorDialog颜色对话框最简单使用

       设置窗体背景颜色 QWidget.setStyleSheet('QWidget {background-color:#88ab45}') 颜色对话框取得颜色值是十六进制. col=QColorDialog.getColor()col.name() 此值就是颜色值的十六进制 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- from PyQt5.QtWidgets import QApplication,QWidget,QColo

MFC编程入门之十九(对话框:颜色对话框)

在上一节中为大家讲解了字体对话框的使用方法,熟悉了字体对话框,本节继续讲另一种通用对话框--颜色对话框. 颜色对话框大家肯定也不陌生,我们可以打开它选择需要的颜色,简单说,它的作用是用来选择颜色.MFC中提供了CColorDialog类封装了颜色对话框的所有操作,我们可以通过它显示颜色对话框,并获取颜色对话框中选择的颜色.颜色对话框跟字体对话框一样,也是一种模态对话框. CColorDialog类的构造函数 CColorDialog( COLORREF clrInit = 0, DWORD dw

.Net学习笔记----2015-07-02(选择文件对话框、保存对话框、字体和颜色对话框)

private void button1_Click(object sender, EventArgs e) { //点击弹出对话框 OpenFileDialog ofd = new OpenFileDialog(); //设置对话框的标题 ofd.Title = "请选择要打开的文本文件哟o(∩_∩)o 哈哈"; //设置对话框可以多选 ofd.Multiselect = true; //设置对话框的初始目录 ofd.InitialDirectory = @"C:\User

Qt打开文件对话框

项目中需要打开文件对话框,就查了一下,不得不说Qt的帮助文档做的真好,非常详细.要实现这个功能有两种方式,使用QFileDialog的静态方法,实例化QFileDialog对象. 基本算是照抄帮助文档了.下面是自己的代码. 1 // 单击文件按钮 2 void FirstDialog::on_pushButtonFile_clicked() 3 { 4 QString strFile = QFileDialog::getOpenFileName( 5 this, 6 tr("打开文件"