qt实现全屏拾色器
界面很简单:
点击按钮,界面隐藏,用户点击鼠标拾取颜色,点击后界面重新出现,中间的label显示拾取的颜色,最下方的lineEdit显示颜色name.
界面类的名称叫做ColorCollector , 它只负责上图的界面显示 , 核心工作在ColorPicker中完成 , 一共就这两个类 . 下面就是这两个类的四个文件.
#ifndef COLORCOLLECTOR_H
#define COLORCOLLECTOR_H
#include <QDialog>
#include "colorPicker.h"
namespace Ui {
class ColorCollector;
}
class ColorCollector : public QDialog
{
Q_OBJECT
public:
explicit ColorCollector(QWidget *parent = 0);
~ColorCollector();
private:
Ui::ColorCollector *ui;
ColorPicker * m_picker;
private slots:
void onBtnClicked();
void onColorPicked(const QColor & c);
void onQuitPicking();
};
#endif // COLORCOLLECTOR_H
#include "colorcollector.h"
#include "ui_colorcollector.h"
#include <QDebug>
#include <QColorDialog>
ColorCollector::ColorCollector(QWidget *parent) :
QDialog(parent),
ui(new Ui::ColorCollector),
m_picker(NULL)
{
ui->setupUi(this);
ui->label->setAutoFillBackground(true);
m_picker = new ColorPicker;
m_picker