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類用於需要臨時進行資料輸入的場合