QT表格模型没有提供访问左上角按钮的API, 查看qtableview.cpp 发现其中有一个QTableCornerButton的私有类, 既然AP没有暴露出该类, 那我们如何设置左上角按钮的显示方式呢?
一. 设置左上角按钮背景色
既然知道左上角按钮就是QTableCornerButton, 我们就可以通过该类名设置该按钮样式
table->setStyleSheet("QTableCornerButton::section{background-color:red;}");
二. 设置按钮文本
虽然没有提供直接的访问方式,可以通过findChild()来定位到该按钮,然后设置其文本及显示宽度.
class TableWidget:public QTableWidget { public: TableWidget(int rows, int cols, QWidget* parent = 0) : QTableWidget(rows, cols, parent) { QAbstractButton* btn = findChild<QAbstractButton*>(); if (btn) { btn->setText("Text"); btn->installEventFilter(this); // adjust the width of the vertical header to match the preferred corner button width // (unfortunately QAbstractButton doesn't implement any size hinting functionality) QStyleOptionHeader opt; opt.text = btn->text(); QSize s = (btn->style()->sizeFromContents(QStyle::CT_HeaderSection, &opt, QSize(), btn). expandedTo(QApplication::globalStrut())); if (s.isValid()) verticalHeader()->setMinimumWidth(s.width()); } } bool eventFilter(QObject* o, QEvent* e) { if (e->type() == QEvent::Paint) { QAbstractButton* btn = qobject_cast<QAbstractButton*>(o); if (btn) { // paint by hand (borrowed from QTableCornerButton) QStyleOptionHeader opt; opt.init(btn); QStyle::State state = QStyle::State_None; if (btn->isEnabled()) state |= QStyle::State_Enabled; if (btn->isActiveWindow()) state |= QStyle::State_Active; if (btn->isDown()) state |= QStyle::State_Sunken; opt.state = state; opt.rect = btn->rect(); opt.text = btn->text(); // this line is the only difference to QTableCornerButton opt.position = QStyleOptionHeader::OnlyOneSection; QStylePainter painter(btn); painter.drawControl(QStyle::CE_Header, opt); return true; // eat event } } return false; } };
运行效果:
相关推荐
例如,可以设定每个控件左上角的坐标为行号和列号的乘积,然后根据列间距和行间距调整控件的宽度和高度。 C++中实现表格定位窗体控件的关键步骤如下: 1. **创建控件**:使用`CreateWindowEx`或`CreateWindow`函数...
左上角图标、标题、标题居中、右上角最小化最大化关闭都可设置,包括设置样式+图标+图形字体(默认图形字体)。 左上角图标及右上角三个按钮可视化控制。同时提供外部访问权限。 无边框窗体可拉伸控制。 提供换肤...
在这个例子中,`x`和`y`分别代表相对于屏幕左上角的绝对坐标,`MOUSEEVENTF_ABSOLUTE`标志表示坐标是绝对值,`MOUSEEVENTF_LEFTDOWN`和`MOUSEEVENTF_LEFTUP`则表示按下和释放左键。 需要注意的是,`SendInput`函数...
javaee电子商城系统课程设计样本.doc
scratch少儿编程逻辑思维游戏源码-糖果大爆险.zip
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
GIS安装施工综合方案.doc
内容概要:本文详细介绍了选题系统源码,涵盖PHP、CSS、JavaScript和MySQL四种核心技术。系统采用B/S架构,支持管理员、审核员、教师和学生四种身份登录,每种身份有独立的功能权限。文中提供了详细的环境搭建指南,如使用phpStudy和Navicat进行项目管理和数据库操作。此外,还展示了关键代码片段,如登录验证、权限管理、数据库设计以及界面优化方法。同时,针对性能优化提出了建议,如解决N+1查询问题的方法。 适合人群:适用于有一定编程基础,尤其是对PHP和Web开发感兴趣的开发者和技术爱好者。 使用场景及目标:① 学习并掌握B/S架构的应用开发流程;② 实践多角色登录和权限管理的具体实现;③ 提升Web应用的界面优化和用户体验;④ 掌握数据库设计和性能优化技巧。 其他说明:本文不仅提供了完整的代码示例,还包括了详细的开发文档和支持材料,帮助读者快速上手并深入理解整个项目的构建过程。
scratch少儿编程逻辑思维游戏源码-下水道冒险猫.zip
scratch少儿编程逻辑思维游戏源码-下雨时向北的路.zip
内容概要:本文深入探讨了三相下垂双逆变器同步并联控制技术,重点介绍了下垂控制的基本原理及其在微电网中的应用。文章详细解释了下垂控制如何通过调整频率和电压幅值来实现负载的自动分配,并讨论了在多台逆变器并联时可能出现的环流问题以及解决方案,如虚拟阻抗法。此外,还介绍了同步环节的关键技术,特别是改进型锁相环的应用,并提供了具体的实现代码示例。最后,文章分享了一些实用的调试技巧和经验,强调了参数整定的重要性。 适用人群:从事电力电子、微电网控制领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解三相下垂双逆变器同步并联控制技术的工程师和科研人员,旨在帮助他们掌握核心技术,解决实际工程中的问题。 其他说明:文中提供的代码示例和调试方法有助于读者更好地理解和应用相关技术,提高系统的稳定性和性能。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
GEPLC机组自动化装置编程使用说明书.doc
scratch少儿编程逻辑思维游戏源码-我的领土.zip
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
scratch少儿编程逻辑思维游戏源码-我的世界 MMO V1.6.zip
scratch少儿编程逻辑思维游戏源码-坦克(1).zip
GSM移动通信网容量解决方案.doc
scratch少儿编程逻辑思维游戏源码-天台狂飙.zip