QT 在QTabWidget中设置一些调色板
这次所做的项目中需要用到如下功能,点击tableWidget中的子项,将会弹出颜色选值对话框,实现子项的改变,如下图所示:
1、首先,将自己定制的调色板放入tableWidget中
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
myPushButton = new MyQPushButton(this);
ui.tableWidget->setCellWidget(i, j, myPushButton); //插入第i行,j列
}
}
2、头文件
#pragma once #include <QObject>
#include <QPushButton>
#include <QColorDialog>
#include <QMouseEvent>
class MyQPushButton : public QPushButton //公有继承QPushButton
{
Q_OBJECT public:
MyQPushButton(QWidget *parent);
~MyQPushButton();
void setColor();//设置随机颜色
void setColor(QColor color);//设置特定颜色
QColor getColor() const;//获取颜色
private slots:
void choiceColor(void); //方法一,通过信号与槽连接
protected:
void mousePressEvent(QMouseEvent *event); //方法二、通过重写鼠标按下事件
};
3、源文件
#include "MyQPushButton.h" MyQPushButton::MyQPushButton(QWidget *parent): QPushButton(parent)
{
//connect(this, SIGNAL(clicked()), this, SLOT(choiceColor(void))); //方法1
/*下面两行代码必须有,否则效果会有差异*/
setAutoFillBackground(true); //设置自动填充背景
setFlat(true); //设置成平面
} MyQPushButton::~MyQPushButton()
{ }
/*点击本身响应的槽函数*/
void MyQPushButton::choiceColor(void)
{
QColor color = QColorDialog::getColor(Qt::white, this); //调出颜色选择器对话框
QPalette pal; //此类包含每个小部件状态的颜色组
pal.setColor(QPalette::Button, color); //QPalette::Button, ColorRole enum定义了当前gui中使用的不同符号颜色角色。
setPalette(pal);
}
/*鼠标按下事件*/
void MyQPushButton::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
QPalette pal;
pal.setColor(QPalette::Button, QColorDialog::getColor());
this->setPalette(pal);
}
}
/*设置随机颜色*/
void MyQPushButton::setColor()
{
QColor color(rand() % , rand() % , rand() % );//产生一组随机的rgb值
QPalette pal;
pal.setColor(QPalette::Button, color);
setPalette(pal);
}
/*设置给定的颜色*/
void MyQPushButton::setColor(QColor color)
{
QPalette pal;
pal.setColor(QPalette::Button, color);
setPalette(pal);
}
/*获取当前颜色*/
QColor MyQPushButton::getColor() const
{
return this->palette().color(QPalette::Button);
}
4、获取当前按钮的颜色。
QColor theColor=((MyQPushButton*)ui.tableWidget->cellWidget(i, j))->palette().color(QPalette::Button);//cellWidget(i, j)的返回值是QWidget*,所以一定要注意使用MyQPushButton*进行类的强制转化(不能使用MyQPushButton)。
补充:获取颜色列表,可参考:https://blog.csdn.net/rl529014/article/details/51589096
QT 在QTabWidget中设置一些调色板的更多相关文章
- Qt应用程序中设置字体
Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类 ...
- Qt设计器中设置border-image注意问题
Qt版本4.8.5,Windows7操作系统,在Qt设计师中通过样式表设计设置widget的border-image属性,debug版本编译会正常显示,但是release版本编译运行就不显示,把图片格 ...
- Qt532.【转】Qt在pro中设置运行时库MT、MTd、MD、MDd,只适合VS版本的Qt
ZC:具体应该设置 什么参数,可以参看 自己转载的文章:"VC.[转]采用_beginthread__beginthreadex函数创建多线程 - CppSkill - 博客园.html&q ...
- 【转】Qt在pro中设置运行时库MT、MTd、MD、MDd,只适合VS版本的Qt
http://blog.csdn.net/caoshangpa/article/details/51416077 一.在pro中设置运行时库 最近在用Qt5.6.0(VS2013版本)调用一份用Vis ...
- Qt与PyQT中设置ToolBar在AllowedArea的显示
因为个人对传统的软件GUI界面不是太喜欢,最近又在学习Qt和PyQt5,所以就有了设置ToolBar在窗口的不同地方的想法,经过浪里淘沙,最终在Qt官网里找到了,原来再添加toolBar的时候是由设置 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的调色板palette属性和字体font属性设置
一.调色板 在Qt Designer的部件属性中,有个部件调色板(palette)的属性,进入后,如下图所示: 1.调色板palette Qt中提供的调色板palette用于管理控件的外观显示,对应P ...
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等. 但是各种方法都有其注意事项,如果不注意则很容易 ...
- QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)
QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg ...
- 报表控件NCReport教程:集成NCReport到Qt应用程序中
NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 但是好多使用NCReport控件的朋友都不 ...
随机推荐
- 移动端布局 + iscroll.js
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- 通过statCounter计算给定的RDD[Double]的统计信息的方法
需求1:给定一个RDD[Double],进行计算,该RDD的统计信息(count,mean,stdev,max,min) 代码: def main(args: Array[String]): Unit ...
- struts-config.xml
<struts-config>是struts的根元素,它主要有8个子元素,DTD定义如下: <!ELEMENT struts-config (data-sources?,form-b ...
- 46 python学习笔记
0 引言 之前用python跑过深度学习的代码,用过一段时间的jupiter和tensorflow:最近在Ubuntu下搭建起了VSCode + Anaconda的python开发环境,感觉很好用,尤 ...
- Delphi 与SQL编程
Delphi 与SQL编程 SQL语言作为关系数据库管理系统中的一种通用的结构查询语言, 已经被众多的数据库管理系统所采用,如Oracle.Sybase.Informix等数据库管理系统,它们都支持S ...
- BZOJ 1697: [Usaco2007 Feb]Cow Sorting牛排序(置换+贪心)
题面 Description 农夫JOHN准备把他的 N(1 <= N <= 10,000)头牛排队以便于行动.因为脾气大的牛有可能会捣乱,JOHN想把牛按脾气的大小排序.每一头牛的脾气都 ...
- NX二次开发-UFUN多按钮模态对话框UF_UI_message_dialog
NX11+VS2013 #include <uf.h> #include <uf_ui.h> UF_initialize(); //多按钮模态对话框 ; char title_ ...
- NX二次开发-UFUN求两个对象最短距离UF_MODL_ask_minimum_dist
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_ui.h> UF_initialize() ...
- Day 13 : 函数递归,
从前有有座山,山里有座庙,庙里有个老和尚给小和尚们讲故事,讲的什么呀,讲的是,从前有有座山,山里有座庙,庙里有个老和尚给小和尚们讲故事,讲的什么呀?讲的是?...... 递归:1.一个函数再内部调用了 ...
- 逻辑回归,多分类推广算法softmax回归中
转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...