经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C++ » 查看文章
C++ Qt QColorDialog使用方法
来源:jb51  时间:2022/1/17 16:41:07  对本文有异议

Qt提供了颜色选择框,如下图:

在这里插入图片描述

QColorDialog使用方法

例如下面的代码,点击按钮弹出颜色选择框,选择颜色,改变QLabel的背景色

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include <QColorDialog>
  4. #include <QPalette>
  5.  
  6. Widget::Widget(QWidget *parent)
  7. : QWidget(parent)
  8. , ui(new Ui::Widget)
  9. {
  10. ui->setupUi(this);
  11.  
  12. ui->label->setText(u8"我是lable");
  13. }
  14.  
  15. Widget::~Widget()
  16. {
  17. delete ui;
  18. }
  19.  
  20. void Widget::on_btn1_clicked()
  21. {
  22. QColor color = QColorDialog::getColor(Qt::white, this, u8"选择颜色");
  23. if(color.isValid())
  24. {
  25. QPalette palette;
  26. palette.setColor(QPalette::Background ,color);
  27. ui->label->setAutoFillBackground(true);
  28. ui->label->setPalette(palette);
  29. }
  30. }

效果如下:

在这里插入图片描述

getColor的调用

getColor声明如下:

  1. static QColor getColor(const QColor &initial = Qt::white,
  2. QWidget *parent = nullptr,
  3. const QString &title = QString(),
  4. ColorDialogOptions options = ColorDialogOptions());

第一个参数是默认的颜色,例如我在上面的代码中,直接设为白色
第二个参数是父窗口指针
第三个是颜色对话框窗口标题

QPalette setColor

setColor的声明如下:

  1. inline void QPalette::setColor(ColorRole acr, const QColor &acolor)

可以使用QColorDialog返回的颜色直接构造QPalette,注意setColor的第一个参数需要一个ColorRole, 可以参看如下说明:

  1. enum ColorRole { WindowText, Button, Light, Midlight, Dark, Mid,
  2. Text, BrightText, ButtonText, Base, Window, Shadow,
  3. Highlight, HighlightedText,
  4. Link, LinkVisited,
  5. AlternateBase,
  6. NoRole,
  7. ToolTipBase, ToolTipText,
  8. PlaceholderText,
  9. NColorRoles = PlaceholderText + 1,
  10. #if QT_DEPRECATED_SINCE(5, 13)
  11. Foreground Q_DECL_ENUMERATOR_DEPRECATED_X("Use QPalette::WindowText instead") = WindowText,
  12. Background Q_DECL_ENUMERATOR_DEPRECATED_X("Use QPalette::Window instead") = Window
  13. #endif
  14. };

例如上面的代码是修改Label的背景颜色,那么就需要使用Background枚举体,如果改变文本就使用Text.

到此这篇关于C++ Qt QColorDialog使用方法的文章就介绍到这了,更多相关 Qt QColorDialog内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号