1.效果展示
- 左侧为当前颜色显示,右侧记录捕捉的颜色值(RGB, ARGB, HEX).
- 实时捕捉鼠标的位置,按ctrl+s即可保存当前鼠标位置的颜色值.

2.代码实现
1.ColorExtractorWidget.hpp
#pragma once
#include <QTimer>
#include <QPixmap>
#include <QImage>
#include <QWidget>
#include <QLabel>
#include <QPoint>
#include <QShortcut>
#include <QHeaderView>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QMouseEvent>
#include <QHboxLayout>
#include <QVBoxLayout>
#include <QApplication>
#include <QGuiApplication>
class ColorExtractorWidget : public QWidget
{
Q_OBJECT
public:
ColorExtractorWidget(QWidget* parent = nullptr);
~ColorExtractorWidget();
private:
void setColor(QWidget* widget, const QColor& color);
void setColor(QWidget* widget, const QString& hexColor);
void initLayout();
void saveCurrentColor();
void getValue();
private:
QLabel* colorLabel;
QTableWidget* extractorRecodTable;
QFont defaultFont;
QAction* action;
int m_r, m_g, m_b, m_a;
QString m_hex;
int current_table_index;
};
2.ColorExtractorWidget.cpp
#include <ColorExtractorWidget.hpp>
ColorExtractorWidget::ColorExtractorWidget(QWidget* parent) : current_table_index(0), m_r(0), m_g(0