//.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));
}
}