QT獲取顏色

//.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QPushButton>
#include <QFrame>
#include <QColorDialog>
#include <QGridLayout>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
private:
    QPushButton *colorBtn;
    QFrame *colorFram;
private slots:
    void showColor();
};

#endif // DIALOG_H

//.cpp

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    colorBtn = new QPushButton;
    colorBtn->setText(tr("標準顏色對話框"));
    //根據選擇的不同顏色更新背景
    colorFram = new QFrame;
    colorFram->setFrameShape(QFrame::Box);
    colorFram->setAutoFillBackground(true);

    //佈局創建在當前窗口
    QGridLayout *mainLayout = new QGridLayout(this);
    mainLayout->addWidget(colorBtn,1,0);
    mainLayout->addWidget(colorFram,1,1);

    connect(colorBtn,SIGNAL(clicked()),this,SLOT(showColor()));

}

Dialog::~Dialog()
{

}

void Dialog::showColor()
{
    QColor c = QColorDialog::getColor(Qt::blue);
    if(c.isValid())
    {
        colorFram->setPalette(QPalette(c));
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章