嵌入式Qt 标准对话框 - 颜色对话框QColorDialog-输入对话框QInputDialog

一.颜色对话框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 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();
}

三.对话框代码实现

main.c:

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;

    w.show();
    
    return a.exec();
}

 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(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();
    }
}

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

    dlg.setWindowTitle("Input Test");
    dlg.setLabelText("Please input an integer:");
    dlg.setInputMode(QInputDialog::TextInput);


    if( dlg.exec() == QInputDialog::Accepted )
    {
        qDebug() << dlg.textValue();
    }
}

Widget::~Widget()
{
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式_笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值