自学QT之颜色选择对话框

来源:互联网 发布:程序员述职报告范文 编辑:程序博客网 时间:2024/06/05 08:34

新建一个基于对话框的工程,取消界面选项。

头文件如下:

#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QFrame>#include <QGridLayout>class Dialog : public QDialog{    Q_OBJECTpublic:    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()函数来调整窗口的大小。

0 0
原创粉丝点击