Qt QTableView滑动、居中、选中加粗

这篇具有很好参考价值的文章主要介绍了Qt QTableView滑动、居中、选中加粗。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.效果:

2.滑动

3.居中

4.选中加粗

5.使用的样式表


1.效果:

Qt QTableView滑动、居中、选中加粗

 

2.滑动

在使用触控屏时需要列表或视图能够滑动查看

ui->tableView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
QScroller* scroller = QScroller::scroller(ui->tableView->viewport());
scroller->grabGesture(ui->tableView>viewport(),QScroller::LeftMouseButtonGesture);

为滚动区域注册了 鼠标左键的手势识别器,在触摸屏上时可以设置为 QScroller::TouchGesture

触摸手势,很多view都可以实现滑动:QListView,QComboBox下拉框滑动...

也可以自己配置滚动属性:具体属性和值范围可以直接跳转帮助文档查看。

QScrollerProperties properties = scroller->scrollerProperties();
    properties.setScrollMetric(QScrollerProperties::DragVelocitySmoothingFactor,0.1);
    properties.setScrollMetric(QScrollerProperties::FrameRate,QScrollerProperties::Fps60);
scroller->setScrollerProperties(properties);

3.居中

3.1 继承 QSqlQueryModel 重写data函数实现表格数据居中

class MySqlQueryModel : public QSqlQueryModel

QVariant data(const QModelIndex &item, int role=Qt::DisplayRole) const;

QVariant MySqlQueryModel::data(const QModelIndex & index, int role) const
{
    if(role == Qt::TextAlignmentRole){
        QVariant value = Qt::AlignCenter;
        return value;
    }
    return QSqlQueryModel::data(index,role);
}

3.2 自定义代理实现表格数据居中

class MyDelegate : public QStyledItemDelegate

void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
    QStyleOptionViewItem newoption(option);
    newoption.displayAlignment = Qt::AlignCenter;        // 居中显示
    QStyledItemDelegate::paint(painter, newoption, index);
}

4.选中加粗

同上,如果是选中状态,则字体加粗文章来源地址https://www.toymoban.com/news/detail-505873.html

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
    QStyleOptionViewItem new_option(option);
    new_option.displayAlignment = Qt::AlignCenter;        // 居中显示
    
    if (new_option.state & QStyle::State_Selected) {
        new_option.font.setBold(true);                    // 变为粗体
    }
    QStyledItemDelegate::paint(painter, new_option, index);
}

/*使用*/
MyDelegate * deldgate = new MyDelegate();
ui->tableView->setItemDelegate(deldgate);

5.使用的样式表

QHeaderView::section {
font: 20px "微软雅黑";
font-weight:bold;
color: rgb(24, 100, 249);
padding-left: 4px;
border: 1px solid #e2e2e2;
background-color:#cddffe;
}

QTableView{
border:none;
color: rgb(119, 119, 119);
gridline-color:#e2e2e2;
}

QTableView::item::selected{
background-color:#cddffe;
color:rgb(51, 51, 51);
}

/*QTableView 左上角样式*/
QTableView QTableCornerButton::section {
background-color:#cddffe;
border: 1px solid #e2e2e2;
}

到了这里,关于Qt QTableView滑动、居中、选中加粗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio最新版:TextView字体加粗、水平居中和垂直居中

    Android Studio最新版:TextView字体加粗、水平居中和垂直居中 在Android应用程序的开发过程中,我们经常需要对界面上的文本进行样式设置,其中包括字体加粗以及水平居中和垂直居中显示。本文将介绍如何使用最新版的Android Studio实现这些效果,并提供相应的源代码作为参考。

    2024年01月23日
    浏览(58)
  • QTableView设置样式表/选中行颜色, QTableView美化

    QTableView设置QSS样式表   Qt基础使用 说明:笔记为代码修改方式,value:代表值,tableWidget替代ui-tabelwidget[控件名称] #include QTableWidget 创建一个tablewidget QTableWidget *tabelWidget = new QTableWidget ; 设置行数 tableWidget-setRowCount(value); 设置列数 tableWidget-setColumnCount(value); QTableWidget设置表头

    2024年02月04日
    浏览(36)
  • Android Studio最新版本中实现TextView字体加粗、水平居中和垂直居中的方法

    Android Studio最新版本中实现TextView字体加粗、水平居中和垂直居中的方法 在Android应用程序开发中,TextView是常用的控件之一,用于在界面上显示文本内容。有时候我们需要对TextView进行样式和布局的设置,比如将字体加粗、水平居中和垂直居中。本文将介绍如何在最新版本的

    2024年02月04日
    浏览(42)
  • (五)Qt 动态手势识别“左右滑动”以及实现翻页效果

    通过Qt实现手势识别控制软件操作相关系列技术方案 (一)Qt 将某控件、图案绘制在最前面的方法,通过QGraphicsScene模块实现 (二)Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方,实现圆点的“彩色拖尾”效果以及“选中方框”效果 (三)Qt 动态手势识别“握拳” (四

    2024年02月11日
    浏览(61)
  • vue2 - Antd Table组件的头部单元格 字体加粗, 文字内容居中 解决办法:

    问题:默认情况下,英文字体加粗,中文字体不加粗, 在当前.vue的style增加穿透antd table的表头样式,然后在使用table的外层设置加上class 分2种情况,单独设置表头,或者所有单元格都居中 单独设置表头:在设置列时,加上方法:customHeaderCell 所有单元格:在设置第一列时加

    2024年02月15日
    浏览(59)
  • Qt 重写QSlider简单实现滑动解锁控件(指定百分比回弹效果)

    组件效果图: 应用场景:  用于滑动解锁相关场景,Qt的控件鼠标监听机制对于嵌入式设备GUI可触摸屏依旧可用。 实现方式: 主要是通过继承QSlider以及搭配使用QStyleOptionSlider来实现效果。 注意细则: QStyleOptionSlider是用于定制空白区域是否可移动滑块,根据需求可舍弃。 组

    2024年02月07日
    浏览(37)
  • 微信小程序:动态修改自定义组件中vant-tab选中标签的大小并加粗标签

            1.在自定义组件的wxss文件里添加如下代码,此处还可以改变字体颜色之类的:         2.在自定义组件的json文件中修改组件样式隔离模式:        3.还遇到一个天坑的问题,这个自定义组件必须放在父组件的第一个引用位置,否则无法生效。我之前tab组件在upload组

    2024年02月06日
    浏览(52)
  • Android TextView字体加粗效果

    两种不同的字体加粗效果: 正常情况下,TextView 设置字体加粗效果,直接在 xml 中设置, 第二种,则是通过代码设置 TextView,此处就不要设置 blod 了 看下,两种字体的加粗效果,看情况设置吧

    2024年02月07日
    浏览(42)
  • 【QT 基础教程 十四】QTableView类解析

    头文件:#includeQTableView 模块:QT += widgets 父类:QAbstractItemView 功能:Qt中的QTableView可以将数据项显示在表格视图中 1.初始化 2.绑定模型 3.添加内容显示 视图是模型的界面显示 ,所以在视图显示内容,需要让模型拿到数据。 4.隐藏行 5.设置行高、列宽 6.获取选中行 7.返回当前

    2024年03月20日
    浏览(69)
  • 微信小程序自定义顶部状态栏滑动显示标题居中

    开启了自定义顶部的配置,轮播图覆盖了顶部,所以需要做一个上滑到胶囊后重新把标题重新展示出来的操作,自定义标题出现不居中情况,以下为解决后的方案,复制粘贴即可: . wxml: . . wxss: . . 滑动事件:滑动到胶囊后把标题展示出来 . . 计算胶囊按钮高度、状态栏高

    2024年02月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包