#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QPushButton>
#include <QFrame>
#include <QColorDialog>
#include <QGridLayout>
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = nullptr);
~Dialog();
private:
QGridLayout *glayout;
QPushButton *colorbutton;
// QFrame类是基本控件的基类,QWidget是QFrame类型
QFrame *colorFrame;
private slots:
void dispcolorFunc();
};
#endif // DIALOG_H
#include "dialog.h"
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
setWindowTitle("颜色对话框测试");
glayout=new QGridLayout(this); // new一个布局对象
colorbutton=new QPushButton("调用颜色对话框");
colorFrame=new QFrame;
colorFrame->setFrameShape(QFrame::Box); // 设置形状
colorFrame->setAutoFillBackground(true); // 填充背景处理
glayout->addWidget(colorbutton,0,0);
glayout->addWidget(colorFrame,1,0);
// 信号槽函数连接
connect(colorbutton,SIGNAL(clicked()),this,SLOT(dispcolorFunc()));
}
Dialog::~Dialog()
{
}
void Dialog::dispcolorFunc()
{
//获取颜色值
QColor colorvalues=QColorDialog::getColor(Qt::red);
if(colorvalues.isValid())
{
colorFrame->setPalette(QPalette(colorvalues));
}
}
54-Qt颜色对话框实战
最新推荐文章于 2024-10-06 23:43:04 发布