一、新建"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