C++ Qt QColorDialog使用方法

目录
  • QColorDialog使用方法
  • getColor的调用
  • QPalette setColor

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

QColorDialog使用方法

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

#include "widget.h"
#include "ui_widget.h"
#include <QColorDialog>
#include <QPalette>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->label->setText(u8"我是lable");
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_btn1_clicked()
{
    QColor color = QColorDialog::getColor(Qt::white, this, u8"选择颜色");
    if(color.isValid())
    {
        QPalette palette;
        palette.setColor(QPalette::Background ,color);
        ui->label->setAutoFillBackground(true);
        ui->label->setPalette(palette);
    }
}

效果如下:

getColor的调用

getColor声明如下:

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

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

QPalette setColor

setColor的声明如下:

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

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

enum ColorRole { WindowText, Button, Light, Midlight, Dark, Mid,
                     Text, BrightText, ButtonText, Base, Window, Shadow,
                     Highlight, HighlightedText,
                     Link, LinkVisited,
                     AlternateBase,
                     NoRole,
                     ToolTipBase, ToolTipText,
                     PlaceholderText,
                     NColorRoles = PlaceholderText + 1,
#if QT_DEPRECATED_SINCE(5, 13)
                     Foreground Q_DECL_ENUMERATOR_DEPRECATED_X("Use QPalette::WindowText instead") = WindowText,
                     Background Q_DECL_ENUMERATOR_DEPRECATED_X("Use QPalette::Window instead") = Window
#endif
                   };

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

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

(0)

相关推荐

  • pyqt qlistwidget改变item颜色的操作

    我就废话不多说了,大家还是直接看代码吧~ 实例: from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sys class Win(QWidget): def __init__(self): super(Win, self).__init__() self.setObjectName("

  • python之pyqt5通过按钮改变Label的背景颜色方法

    使用setStyleSheet方法修改得到自己想要的字体,大小,颜色 self.lab = QLabel("标签字体大小颜色", self) self.lab.setGeometry(50,50,300,200) self.setStyleSheet("QLabel{color:rgb(225,22,173,255);font-size:50px;font-weight:normal;font-family:Arial;}") color:rgb()中的四个参数,前

  • PyQt4 treewidget 选择改变颜色,并设置可编辑的方法

    如下所示: # -*- coding: utf-8 -*- import sys from PySide.QtGui import * from PySide.QtCore import * global Item_temp Item_temp='' class TreeWidget(QWidget): def __init__(self): super(TreeWidget, self).__init__() self.setWindowTitle('TreeWidget') self.tre

  • C++ Qt QColorDialog使用方法

    目录 QColorDialog使用方法 getColor的调用 QPalette setColor Qt提供了颜色选择框,如下图: QColorDialog使用方法 例如下面的代码,点击按钮弹出颜色选择框,选择颜色,改变QLabel的背景色 #include "widget.h" #include "ui_widget.h" #include <QColorDialog> #include <QPalette> Widget::Widget(

  • Qt计时器使用方法详解

    本文实例为大家分享了Qt计时器的使用方法,供大家参考,具体内容如下 计时器 在我们的日常设计程序中,经常需要固定时间段来刷新界面或者处理一些事务,这个时候计时器就很重要. 比如说在用Qt设计一个时间显示程序时 我们若想让这个标签实时变动,计时器就是个很好的方法. 计时器类QTimer 我们先看看它的信号-槽机制 public Q_SLOTS:     void start(int msec);     void start();     void stop(); Q_SIGNALS:     v

  • PyQt5响应回车事件的方法

    我在编程时遇到一个问题,就是PyQt5不能响应回车时间,也就是下面这段代码不能执行: if (event.key() == Qt.Key_Enter): 解决方法:打印出事件码: def keyPressEvent(self, event): #这里event.key()显示的是按键的编码 print("按下:" + str(event.key())) 然后直接判断事件码: if str(event.key())=='16777220':#回车 print('ok') 以上这篇PyQt

  • 如何在 ubuntu linux 上配置 go 语言的 qt 开发环境

    go语言是开发效率极高.运行速度也接近C程序的现代编程语言,qt是跨平台的优秀gui库,二者结合起来工作表现非常优秀.本文讲的有两个事情,第一个是安装go语言的qt绑定包,第二个是安装go语言的集成开发环境. 安装github.com/therecipe/qt包 本段介绍的是如何安装和配置github.com/therecipe/qt开发包,这是一个非常优秀的qt库的go语言绑定,它非常强大,完美支持QT的信号槽机制,而且它的API完全模仿C++,所以你可以直接参考官方的QT C++文档. 我介

  • ubuntu linux下使用Qt连接MySQL数据库的方法

    环境说明: ubuntu 10.04.2 QtSDK (1.5G安装包的那个) mysql5.1 1.安装MySQL Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好.直接在软件中心搜mysql,把client和server选上. server在安装时会提示为root用户设置密码,设一个好了. 我使用的是mysql5.1版本,用户名密码存储在一个叫mysql的数据库里,只有管理员级别才能看到. 如果直接在终端中输入 mysql,可能会提示ERROR 1045 (280

  • 在Qt中正确的设置窗体的背景图片的几种方法总结

    Qt中正确的设置窗体的背景图片的方法大致有两种,下面将逐个讲解: 一. 利用styleSheet设置窗体的背景图片 使用stylesheet设置窗体的背景图片的时候,可以直接按照下图的操作去进行即可,如下图所示: 但是,需要注意的是: 1.在QWidget中这种方法是不行的,如果你足够细心的话,你会发现使用同样的设置背景图片的方法,背景图片其实并没有发生真实改变,但是它的子窗体背景图片是会发生改变的. 其实我们可以通过在添加一个i额QWidget来解决这个问题,即在QtDesigner中添加一个

  • Qt自定义表头实现过滤功能的方法

    1. 写在前面 过滤功能源自项目上交互优化用户体验,在表头添加过滤符号实现过滤,替换以往在表格上方占用一行过滤项进行过滤. 2. 过滤提示 过滤提示就是三态图标(normal,hover,press).这三种状态的实现通过鼠标移动事件和鼠标点击事件来实现.具体实现如下:   1)hover状态在鼠标移动事件中实现 void CFilterHeaderView::mouseMoveEvent(QMouseEvent *e) { m_hover = logicalIndexAt(e->pos());

  • PyQt 图解Qt Designer工具的使用方法

    前言 Qt Designer是PyQt程序UI界面的实现工具,Qt Designer工具使用简单,可以通过拖拽和点击完成复杂界面设计,并且设计完成的.ui程序可以转换成.py文件供python程序调用.本文主要通过用户登录需求描述Qt Designer工具开发界面的使用方法. 开发工具版本 pyhton3.7.4 + PyQt 5.11.2 Qt Designer工具主界面 打开路径:${python安装目录}/Lib/site-packages/pyqt5_tools/designer.exe

  • python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可证, 要么选择GPL(自由软件协议)将代码开源, 要么选择商业许可交商业许可费. PySide拥有LGPL 2.1授权许可, 可开发 免费开源软件 和 私有商业软件. 把PyQt5代码切换到PySide2代码是相当容易的, 这也是为什么选择学习PyQt5的原因 准备工作 安装PyQt5: pip i

  • python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例

    在下面这3篇文章中我们给出了手工输入代码的信号与槽的使用方法,因为采用这种方法介绍时,会简单一些,如果使用Qt Designer来介绍这些功能,那么任何一个简单的功能都会使用xxxx.ui xxxx.py call_xxxx.py三个文件 来实现,这样内容会显得很乱 python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例 python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例 python GUI库图形界面开发之PyQt5信号与槽的高级

随机推荐