Qt窗口控件之颜色对话框QColorDialog
颜色对话框QColorDialog
QColorDialog
是 Qt 内置的颜色对话框,它允许用户选择一个颜色,并通过接口获取颜色的值,进行进一步设置。
获取QColorDialog颜色
QColorDialog
可以使用堆创建,挂载对象树的方式。但它更适合使用它的静态函数 QColorDialog::getColor()
创建匿名对象获取颜色:
getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions())
initial
为对话框的初始默认选择颜色。
parent
挂载到 this
或其他父窗口。
title
为对话框的标题文本。
获取到用户选择的颜色后,就可以结合 styleSheet
属性进行进一步设置:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QColorDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QColor color=QColorDialog::getColor(QColor(255,0,0),this,"请选择颜色");
char style[512]={0};
sprintf(style,"background-color:rgb(%d,%d,%d);",color.red(),color.green(),color.blue());
this->setStyleSheet(style);
}