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);
}
相关推荐
斯~内克2 分钟前
解密 `npm run dev`:从命令行到浏览器热更新的完整旅程
前端·npm
浪裡遊16 分钟前
我的uniapp自定义模板
开发语言·前端·uni-app·个人开发
諰.17 分钟前
【C++】动态规划从入门到精通
c++·动态规划
weixin_3077791320 分钟前
Linux下用Bash Shell脚本和mysql命令行程序实现带多组参数和标签的MySQL数据库批量数据导出程序
linux·开发语言·数据库·mysql·bash
程序员yt31 分钟前
双一流软件工程大二听闻 Java 前景堪忧,是否该转C++或人工智能或者读研?
java·c++·人工智能
uhakadotcom1 小时前
teable:你的数据管理和协作利器
前端·面试·github
顾林海1 小时前
Flutter Dart 元数据:为代码注入额外信息
android·前端·flutter
red润1 小时前
理解 Node.js 中的 process 对象与常用操作
前端·javascript·node.js
Lafar1 小时前
Block中的auto 变量和static变量
前端·面试
程序员海军1 小时前
AI Agent爆火后,MCP协议为什么如此重要!
前端·人工智能·aigc