一.描述
QColorDialog对话框是用来为用户提供颜色选择的对话框控件,和上一章的QFontDialog控件一样,是继承自QDialog这个基类。其使用方法和QFontDialog基本相同。
二.功能作用
1.构造函数
可以直接声明使用,也可以为其传递一个QColor对象作为默认颜色
m_colrDialog = new QColorDialog(this);
QColor color =QColor(10,10,10);
m_colrDialog = new QColorDialog(color,this);
2.打开对话框
打开对话框有三种常用方法:
QColorDialog.show();
QColorDialog.open();
QColorDialog.exec();
三.常用信号
和字体对话框的常用信号差不多。
QColorDialog::colorSelected() //颜色选择
QColorDialog::currentColorChanged() //当前颜色变化
整体用法和qfontDialog差不多,直接上效果图和源码:
源码:
mainwindow.c
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_colrDialog = new QColorDialog(this);
QPushButton *m_bt = new QPushButton(this);
QColor color =QColor(10,10,10);
m_colrDialog = new QColorDialog(color,this);
m_bt->setGeometry(100,20,100,30);
m_bt->setText("选择颜色");
m_edit = new QTextEdit(this);
m_edit->setGeometry(20,100,200,200);
m_edit->append("字体对话框测试");
connect(m_bt,&QPushButton::clicked,this,&MainWindow::slot_btclicked);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::slot_btclicked()
{
if(m_colrDialog->exec()){
QColor mcolor = m_colrDialog->currentColor();
m_edit->setTextColor(mcolor);
m_edit->append("我的骨骼精奇");
}
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QColorDialog>
#include <QTextEdit>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void slot_btclicked();
private:
Ui::MainWindow *ui;
QColorDialog *m_colrDialog;
QTextEdit *m_edit;
};
#endif // MAINWINDOW_H