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