第二十课、Qt中的标准对话框(中)------------------狄泰软件学院

一、颜色对话框

1、Qt提供了预定义的颜色对话框QColorDialog类

2、QColorDialog类用于提供指定颜色的对话框部件

 

3、颜色对话框的使用方式

4、Qt中的QColor类用来在程序中表示颜色的概念

5、QColor类同时支持多种颜色的表示方式

(1)、RGB:以红绿蓝为基准的三色模型

(2)、HSV:以色调、饱和度、明度为基准的六角锥体模型

(3)、CMYK:以天蓝、品红、黄色、黑为基准的全彩印刷色彩模型

6、QColorDialog类中的实用函数

二、输入对话框

1、Qt提供了预定义的输入对话框QInputDialog类

2、QInputDialog类用于需要临时进行数据输入的场合

 

3、输入对话框的使用方式

4、输入对话框的输入模式

5、QInputDialog中的实用函数(在静态成员函数那里找)

#ifndef _WIDGET_H_
#define _WIDGET_H_

#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();
};
#endif
Widget.h
#include "Widget.h"
#include <QColorDialog>
#include <QInputDialog>
#include <QDebug>
#include <QColor>

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, 120);
    setFixedSize(200, 120);

    connect(&InputDialogBtn, SIGNAL(clicked()), this, SLOT(InputDialogBtn_Clicked()));
    connect(&ColorDialogBtn, SIGNAL(clicked()), this, SLOT(ColorDialogBtn_Clicked()));
}


void Widget::ColorDialogBtn_Clicked()
{
    QColorDialog dlg(this);//1.定义

    dlg.setWindowTitle("Color");//2.设置
    dlg.setCurrentColor(QColor(100,111,222));//或者Qt::red

    if(dlg.exec() == QColorDialog::Accepted)//3.显示
    {
        qDebug() << dlg.selectedColor();


        QColor color = dlg.selectedColor();
        qDebug() << color;
        qDebug() <<"red:  " << color.red();
        qDebug() <<"green:" << color.green();
        qDebug() <<"blue: " << color.blue();

        qDebug() <<"hue:  " << color.hue();
        qDebug() <<"saturation:" << color.saturation();
        qDebug() <<"value: " << color.value();
    }
}

void Widget::InputDialogBtn_Clicked()
{
    QInputDialog dlg(this);

    dlg.setWindowTitle("QInputDialog");
    dlg.setInputMode(QInputDialog::IntInput);
    dlg.setIntMinimum(0);
    dlg.setIntMaximum(255);

    dlg.exec();
}

Widget::~Widget()
{

}
Widget.cpp
#include <QtGui/QApplication>
#include "Widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    
    return a.exec();
}
main.cpp

三、小结

(1)、QColorDialog类用于提供指定颜色的对话框部件

(2)、Qt中的QColor类用来在程序中表示颜色的概念

 (3)、QInputDialog类用于需要临时进行数据输入的场合

原文地址:https://www.cnblogs.com/gui-lin/p/6402097.html