QT 表格设置左上角按钮
来源:互联网 发布:ps4重新构建数据库 编辑:程序博客网 时间:2024/05/22 08:10
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;
- }
- };
运行效果:
文章 来源:http://tcspecial.iteye.com/blog/1923063
0 0
- QT 表格设置左上角按钮
- QT QTableView表格左上角样式
- 《Qt》part 2 设置软件左上角图标
- VS2015+Qt 如何设置窗口左上角图标
- 将ubuntu左上角的关闭按钮设置到右上角
- iOS 左上角的返回按钮的几种设置
- window左上角按钮
- QT中如何给表格添加按钮
- QT 按钮图片的设置
- QT 按钮图片的设置
- Qt设置按钮的图标
- Qt 按钮设置样式表
- QT 按钮控件设置快捷键
- QT 按钮控件设置快捷键
- EditText 设置 左上角 光标
- 从一个界面push到下一界面左上角返回按钮文字设置(常用功能)
- 从一个界面push到下一界面左上角返回按钮文字设置
- mac osx应用程序的一些简单设置(隐藏左上角缩小和全屏的按钮)
- 查找字符串出现次数
- 本周学习积累(pgp加密,通道机,secureCRT)
- 由内存复制函数看assert宏的使用
- 不要62(杭电2089)
- getCurrentSession与getSession之关系
- QT 表格设置左上角按钮
- oracle 发送邮件
- 新手程序员笔记-Spring-spring上传下载
- chmod 改变权限命令
- API Demos 笔记(1)——ApiDemos.java
- 六度分离——最短路
- 蛇形填数
- 温控项目PID心得
- 循环-05. 兔子繁衍问题