自學QT之顏色選擇對話框

新建一個基於對話框的工程,取消界面選項。函數

頭文件以下:this

#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文件以下:spa

#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()
{

}


運行後的效果:code

固然,實際上不改變窗口大小是看不到frame窗口的,因此再main函數中用了setGeometry()函數來調整窗口的大小。
get

相關文章
相關標籤/搜索