从Qt5 ColorDialog中删除颜色渐变窗口

时间:2014-08-14 07:18:08

标签: c++ qt user-interface qt5

这是Color Dialog

中的标准Qt5

enter image description here

是否可以单独查看基本颜色并从对话框中删除颜色渐变?

2 个答案:

答案 0 :(得分:1)

我找到了这个问题的简单解决方案。它不是删除,但使用我的代码,我们无法看到此渐变,也无法使用它。

我们需要创建子类。我们的代码:

mycolordialog.h

#ifndef MYCOLORDIALOG_H
#define MYCOLORDIALOG_H

#include <QColorDialog>
#include <QLabel>

class MyColorDialog : public QColorDialog
{
    Q_OBJECT
public:
    explicit MyColorDialog(QWidget *parent = 0);

signals:

public slots:


};

#endif // MYCOLORDIALOG_H

mycolordialog.cpp

#include "mycolordialog.h"

MyColorDialog::MyColorDialog(QWidget *parent) :
    QColorDialog(parent)
{
    QLabel * l = new QLabel("Teeeeext",this);
    l->setGeometry(245,5,325,215);//this values control the area and position of label
    //you can change this values and remove another area of main dialog window

    QPixmap pixmap("G:/2/qt.jpg");
    l->setPixmap(pixmap.scaled(325,215,Qt::IgnoreAspectRatio));;//resize our picture
    l->show();
}

如何使用???

#include "mycolordialog.h"
//...
void MainWindow::on_pushButton_16_clicked()
{
    MyColorDialog cd;
    cd.exec();
    qDebug() << cd.selectedColor();
}

您可以在应用中设置标签漂亮的徽标,或其他内容。我在这里使用徽标http://reichertbrothers.com/images/qt-logo.png,但我将其转换为jpg格式。

我们得到了什么?

enter image description here

请注意,所有其他区域都可用,您可以根据需要选择任何颜色和工作,但此梯度窗口将被移除!!

我希望它有所帮助。

答案 1 :(得分:0)

您可以选择修改颜色对话框外观的选项位于QColorDialog文档中。

    enum ColorDialogOption {
    ShowAlphaChannel    = 0x00000001,
    NoButtons           = 0x00000002,
    DontUseNativeDialog = 0x00000004
    };

此选项不会隐藏颜色选择器,因此您必须实现自定义颜色选择器。