Qt5開發及實例學習之標準顏色對話框類QColorDialog:選擇某種顏色

一、新建"QT GUI",基類選擇"QDialog',取消「建立界面」佈局

二、dialog.cpp中:this

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QPushButton>
#include <QFrame>
#include <QGridLayout>
class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();

private:   //私有變量聲明
    QPushButton *colorBtn;
    QFrame *colorFrame;
    QGridLayout *mainLayout;

private slots:
    void showColor();
};

#endif // DIALOG_H

三、dialog.cpp中code

#include "dialog.h"
#include <QGridLayout>
#include <QColorDialog>
Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    colorBtn = new QPushButton;

    //控件初始化
    colorBtn->setText(tr("顏色標準對話框"));
    colorFrame = new QFrame;
    colorFrame->setFrameShape(QFrame::Box);
    colorFrame->setAutoFillBackground(true);
    //佈局管理

    mainLayout = new QGridLayout(this);
    mainLayout->addWidget(colorBtn, 1, 0);
    mainLayout->addWidget(colorFrame, 1, 1);

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

Dialog::~Dialog()
{

}

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

 

四、效果blog

效果圖

五、get

QColor color = QColorDialog::getColor
        (const QColor&initial = Qt::white, 
         QWidget * parent = 0);it

第一個參數:對話框打開時默認選擇的顏色(QColor類型) 
第二個參數:它的parent class

相關文章
相關標籤/搜索