设置QTableWidget的左上角CornerWidget的文字(一)
来源:互联网 发布:计算机技术与软件 证书 编辑:程序博客网 时间:2024/05/19 22:02
//mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void init();protected: bool eventFilter(QObject *o, QEvent *e);private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include <QStylePainter>#include <QAbstractButton>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); init();}MainWindow::~MainWindow(){ delete ui;}void MainWindow::init(){ QAbstractButton* btn = findChild<QAbstractButton*>(); if (btn) { btn->setText("ID"); 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()) ui->tableWidget->verticalHeader()->setMinimumWidth(s.width()); }}bool MainWindow::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;}
0 0
- 设置QTableWidget的左上角CornerWidget的文字(一)
- 设置QTableWidget的左上角CornerWidget的文字(二)
- 设置QTableWidget的左上角CornerWidget的文字(三)
- QTableWidget 如何让左上角的方块不可点击
- QTableWidget的详细设置
- QTableWidget的详细设置
- 设置窗口左上角的图标
- JFrame 设置左上角的图片
- 做一个点在文字的左上角
- QTableWidget column宽度的设置
- 设置窗体左上角显示的图标
- 从一个界面push到下一界面左上角有个返回按钮,如何才能设置那个按钮显示的文字呢?
- 3种方法实现UILabel的左上角对齐显示文字
- 【Qt开发】QTableWidget的详细设置
- iOS 左上角的返回按钮的几种设置
- 如何设置安装界面左上角的自定义图标
- VC SDK下如何设置对话框左上角的图标
- 将ubuntu左上角的关闭按钮设置到右上角
- linux学习书籍和路线推荐
- 导入即可SpingMVC+MyBatis简单权限管理系统,带数据库
- 拖放转换 批量转换 xls 2 txt
- 初识html总结
- html js 输入日期输出星期
- 设置QTableWidget的左上角CornerWidget的文字(一)
- 黑马程序员_java学习笔记 6.多线程
- iOS9 app显示英文
- 11-EMM Procedure 1. Initial Attach Part2
- iOS项目发布流程
- StackEdit Windows本地服务器搭建
- 建造者模式
- oracle 12c rac dbca建库,提示无法访问+DATA磁盘组
- Error:(27, 42) 错误: <匿名com.jeff.networktest.MainActivity$1>不是抽象的, 并且未覆盖Handler中的抽象方法publish(LogRecord