自學QT之顏色選擇對話方塊
阿新 • • 發佈:2019-02-10
新建一個基於對話方塊的工程,取消介面選項。
標頭檔案如下:
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include <QFrame> #include <QGridLayout> class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); private: QPushButton *colorbtn; QFrame *colorFrame; QGridLayout *mainlayout; public slots: void showcolors(); }; #endif // DIALOG_H
.cpp檔案如下:
#include "dialog.h" #include <QColor> #include <QColorDialog> #include <QPushButton> Dialog::Dialog(QWidget *parent) : QDialog(parent) { colorbtn=new QPushButton; colorbtn->setText("顏色選擇按鈕"); 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(bool)),SLOT(showcolors())); } void Dialog::showcolors() { QColor c=QColorDialog::getColor(Qt::blue); if(c.isValid()) { colorFrame->setPalette(QPalette(c)); } } Dialog::~Dialog() { }
執行後的效果:
當然,實際上不改變視窗大小是看不到frame視窗的,所以再main函式中用了setGeometry()函式來調整視窗的大小。