1. 程式人生 > >Qt 中的標準對話方塊(QColorDialog和QInputDialog)

Qt 中的標準對話方塊(QColorDialog和QInputDialog)

1、顏色對話方塊 

Qt中提供了預定義的顏色對話方塊QColorDialog類 

QColorDialog類用於提供指定顏色的對話方塊部件 

顏色對話方塊的使用方式 

Qt中的QColor類用來在程式中表示顏色的概念 

QColor類同時支援多種顏色表示方式

        - RGB: 以紅,綠,藍為基準的三色模型 

        - HSV: 以色調,飽和度,明度為基準的六角錐體模型 

        - CMYK: 以天藍,品紅,黃色,黑為基準的全綵印刷色彩模型 

QColorDialog中的實用函式 

             - QColorDialog: : getColor 

2、輸入對話方塊 

Qt中提供了預定義的輸入對話方塊QlnputDialog類 

QlnputDialog類用於需要臨時進行資料輸入的場合 

輸入對話方塊的使用方式 

輸入對話方塊的輸入模式 

         QinputDialog::TextInput -輸入文字字串

         QinputDialog::IntInput -輸入整形數 

         QinputDialog::DoubleInput    - 輸入浮點數 

QlnputDialog中的實用函式 

         - QinputDialog: : getDouble 

         - QinputDialog: :getInt 

         - QinputDialog:: getItem 

         - Qinpu tDialog: : getText 

3、程式設計實驗

顏色、輸入對話方塊使用例項    20-1.pro 

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)); //自定義  可以直接dlg.setCurrentColor(QColor::blue);

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

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

4、小結 

QColorDialog類用於提供指定顏色的對話方塊部件 

QColor類用來在程式中表示顏色的概念 

QlnputDialog類用於需要臨時進行資料輸入的場合