Qt颜色选择器小工具?

Fre*_*Ben 7 qt dialog qt4 color-picker qt5

我有一个QDialog子类,为用户选择提供了一些选项.其中一个选项是颜色.我已经看过了QColorDialog,我需要更简单的东西,这也是一个常规的小部件,所以我可以添加到我的布局作为我的对话框的一部分.Qt会提供这样的东西,还是我必须自己创作?如果是后者,最好的策略是什么?

Dan*_*erg 8

您是否看过Qt解决方案的QtColorPicker?

QtColorPicker

QtColorPicker以a形式提供一个小部件,QComboBox具有一组可自定义的预定义颜色,便于快速访问.单击该...按钮将打开QColorDialog.它在LGPL下获得许可,因此通过动态链接和正确归属,它可以用于商业软件.搜索QtColorPicker,你会发现它.这是一个链接到一个托管许多Qt解决方案组件的站点:

https://qt.gitorious.org/qt-solutions/qt-solutions-gordons/source/bceb890b844d0b40c72d4422171e732ea38ecbe8:

  • 链接再次消失。 (4认同)

Ant*_*ony 5

Qt不提供任何比QColorDialog本身比较简单,但也有多种颜色选择部件的一部分wwWidgets,用户做出设置构件Qt的(注意,这是“wwWidgets”与“W”,而不是“wxWidgets的”与一个“x”)。


jpo*_*o38 5

有一种非常简单的方法可以使用 QPushButton来显示当前颜色并在单击它时拾取一个:

定义:

#include <QPushButton>
#include <QColor>

class SelectColorButton : public QPushButton
{
    Q_OBJECT
public:
    SelectColorButton( QWidget* parent );

    void setColor( const QColor& color );
    const QColor& getColor();

public slots:
    void updateColor();
    void changeColor();

private:
    QColor color;
};
Run Code Online (Sandbox Code Playgroud)

执行:

#include <QColorDialog>

SelectColorButton::SelectColorButton( QWidget* parent )
{
    connect( this, SIGNAL(clicked()), this, SLOT(changeColor()) );
}

void SelectColorButton::updateColor()
{
    setStyleSheet( "background-color: " + color.name() );
}

void SelectColorButton::changeColor()
{
    QColor newColor = QColorDialog::getColor(color,parentWidget());
    if ( newColor != color )
    {
        setColor( newColor );
    }
}

void SelectColorButton::setColor( const QColor& color )
{
    this->color = color;
    updateColor();
}

const QColor& SelectColorButton::getColor()
{
    return color;
}
Run Code Online (Sandbox Code Playgroud)