Qt窗口控件之颜色对话框QColorDialog

颜色对话框QColorDialog

QColorDialog 是 Qt 内置的颜色对话框,它允许用户选择一个颜色,并通过接口获取颜色的值,进行进一步设置。

获取QColorDialog颜色

QColorDialog 可以使用堆创建,挂载对象树的方式。但它更适合使用它的静态函数 QColorDialog::getColor() 创建匿名对象获取颜色:

cpp 复制代码
getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions())

initial 为对话框的初始默认选择颜色。

parent 挂载到 this 或其他父窗口。

title 为对话框的标题文本。


获取到用户选择的颜色后,就可以结合 styleSheet 属性进行进一步设置:

cpp 复制代码
#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);
}
相关推荐
东风破_7 分钟前
JWT 1:从一个登录请求开始,理解 React 项目里的 API 层与 Mock
前端·后端
东风破_12 分钟前
JWT 3:为什么 Token 要放进 Authorization?Axios 拦截器到底解决了什么?
前端·后端
东风破_13 分钟前
JWT 5:路由守卫是什么?把整个 JWT 登录鉴权流程串起来
前端·后端
东风破_14 分钟前
JWT 2:HTTP 是无状态的,为什么登录成功后还要给 Token?
前端·后端
东风破_21 分钟前
JWT 4:Zustand 到底解决了什么?为什么登录状态要放进 Store?
前端·后端
wuminyu25 分钟前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
IT_陈寒28 分钟前
Vite动态导入差点让我秃头,原来问题出在这
前端·人工智能·后端
草莓橙子碗34 分钟前
Claude 使用指南
开发语言·python
SWAGGY..37 分钟前
【C++进阶】:(1)继承机制详解
java·jvm·c++
longxiaozhang61 小时前
C# Array类:数组其实没那么难
开发语言·c#