Qt 20 标准对话框 - 颜色对话框QColorDialog,输入对话框QInputDialog

颜色对话框QColorDialog

QT中提供了预定义的颜色对话框 QColorDialog类
QColorDialog类用于提供颜色的对话框部件

颜色对话框使用:

//构造颜色对话框对象 并指定父窗口
QColorDialog dlg(this);

//设置颜色对话框的相关属性
dlg.setWindowTitle("Color Editor");//设置标题
dlg.setCurrenColor(Qt :: red);// 初始颜色

//以模态方式打开颜色对话框
if(dlg.exec() == QColorDialog :: Accepted)
{
qDebug() << dlg.selectedColor();
}

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

QColor类同时支持多种颜色表示方式
RGB:以 红绿蓝为基准的三色模型
HSV:以 色调 饱和度 明度 为基准的 六角锥模型
CMYK:以天蓝 品红 黄色 黑 为基准的全彩印刷色彩模型

输入对话框 QInputDialog

Qt中提供了预定义的输入对话框 QInputDialog类
QInputDialog类用于需要临时进行数据输入的场合

输入对话框的使用

//构造输入对话框 并指定父组件
QInputDialog dlg(this);

//设置输入对话框的相关属性
dlg.setWindowTitle("Input...");//窗口标题
dlg.setLabelText("Please enter a integer:");//提示用户信息
//设置当前输入对话框 输入内容类型 :
/* 输入对话框的输入模式:
QInputDialog :: TextInput 输入文本字符串
QInputDialog :: IntInput 输入整形数
QInputDialog :: DoubleInput 输入浮点数
*/
dlg.setInputMode(QInputDialog ::IntInput);
//以模态形式使用输入对话框
if(dlg.exec() == QInputDialog::Accepted)
{
qDebug() << dlg.intValue();
}

实验:

widget.h

#ifndef _WIDGET_H_
#define _WIDGET_H_

#include <QtGui/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.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, 120);
    setFixedSize(200, 120);
    connect(&ColorDialogBtn, SIGNAL(clicked()), this, SLOT(ColorDialogBtn_Clicked()));
    connect(&InputDialogBtn, SIGNAL(clicked()), this, SLOT(InputDialogBtn_Clicked()));
}
//颜色对话框对象使用
void Widget::ColorDialogBtn_Clicked()
{
    //创建颜色对话框对象 并 指定父窗口
    QColorDialog dlg(this);
    //设置颜色对话框标题
    dlg.setWindowTitle("Color Editor");
    //设置初始颜色
    //dlg.setCurrentColor(Qt::blue); //初始颜色为蓝色
    dlg.setCurrentColor(QColor(100, 111, 222));//自定义颜色QColor(100, 111, 222)
    //以模态方式打开颜色对话框
    if( dlg.exec() == QColorDialog::Accepted )
    {
        //创建颜色对象,selectedColor()选择在对话框中选择的颜色
        QColor color = dlg.selectedColor();
        qDebug() << color;
        //rgb模型
        qDebug() << color.red();
        qDebug() << color.green();
        qDebug() << color.blue();
        //六角椎体模型
        qDebug() << color.hue();
        qDebug() << color.saturation();
        qDebug() << color.value();
    }
}
void Widget::InputDialogBtn_Clicked()
{
   //构造输入对话框 并指定父组件
    QInputDialog dlg(this);
    //设置输入对话框的相关属性
    dlg.setWindowTitle("Input Test");//窗口标题
    dlg.setLabelText("Please input an integer:");//提示用户信息
    //输入对话框的输入模式 字符串
    dlg.setInputMode(QInputDialog::TextInput);
    //dlg.setInputMode(QInputDialog::IntInput );
    //dlg.setIntMinimum(0);
    //dlg.setIntMaximum(255);
    //以模态形式使用输入对话框
    if( dlg.exec() == QInputDialog::Accepted )
    {
        qDebug() << dlg.textValue();//返回输入的字符串
        //qDebug() << dlg.intValue();//返回输入的整形
    }
}
Widget::~Widget()
{
    
}

main.cpp

#include <QtGui/QApplication>
#include "Widget.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    
    return a.exec();
}

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LinuxArmbiggod/article/details/115003220