我试图制作一个自定义的颜色选择器,我应该拥有用颜色填充图像所需的一切。当我运行程序时,它仅显示没有颜色的小部件,而我可以将其移到左侧或顶部。
我在设计器选项卡中添加了QWidget,并将其提升为我命名为“ ColorPicker”的新类。我在头文件中添加了一个受保护的函数paintEvent。
我的ColorPicker的CPP文件:
#include "colorselector.h"
ColorSelector::ColorSelector(QWidget *parent) : QWidget(parent)
{
}
void ColorSelector::paintEvent(QPaintEvent *){
QColor c;
QImage pic(360,20,QImage::Format_RGB32);
for(int x=0; x < 360; x++){
for(int y=0; y < 20; y++){
c.setHsl(x,255,127);
pic.setPixel(x,y,c.rgb());
}
}
}
我的ColorPicker头文件:
#ifndef COLORSELECTOR_H
#define COLORSELECTOR_H
#include <QWidget>
class ColorSelector : public QWidget
{
Q_OBJECT
public:
explicit ColorSelector(QWidget *parent = nullptr);
protected:
void paintEvent(QPaintEvent *);
signals:
public slots:
};
#endif // COLORSELECTOR_H
它应该在QWidget中给我带来彩虹般的色彩。
答案 0 :(得分:0)
这不是您真正想要的,但可以显示出实现此目标的良好愿景。 您可以使用三个QSlider来代表3种主要颜色,红色,绿色和蓝色,每个滑块的值应介于0到255之间。
然后创建一个方形Qlabel并通过css用滑块值绘制它的backgroundColor:
QLabel* label = new QLabel;
label->->setStyleSheet("background-color:rgb(slider1->value();,sliderGreen->value();,slideBlue->value(););");
把它当作代码的一个概念,不是真正的代码,请重写它,不要粘贴它:)
答案 1 :(得分:0)
在颜色选择器中,您可以使用Qslider中的r,g,b,a绘制小部件的背景
Capybara.reset_sessions!
答案 2 :(得分:0)
看看这个用于PyQt的自定义圆形颜色选择器
It looks like this and can easily added as a Widget and modified