zoukankan      html  css  js  c++  java
  • Qt表格导出图片

    概述:qt中把某个控件导出保存为图片导出并不复杂,网上也有一堆方法。但是对于tableview中数据很多的情况下势必会出现滚动条,用传统的截屏抓图势会有滚动条,图片数据展示不全。在这我使用了一种折中方法

    即:永远不让tableview出现滚动条,而是把tableview放在一个scrollarea里面,当表各种数据过多时,tableview的高度会一直增加,而此时的scrollarea会出现滚动条,这样tableview导出为图片时会显示其所有数据

    一、首先看看界面布局

    把tableview放在一个scrollarea里面,当向tableview里面添加的数据比较多时,scrollarea的滚动条就会自动出现,当然这个需要代码的控制,再后面会讲到

    二、如何控制tableview高度增加

    void Dialog::verticalResizeTableViewToContents(QTableView *tableView)

    {
        int rowTotalHeight=0;
    
    
        // Rows height
        int count=tableView->verticalHeader()->count();
        for (int i = 0; i < count; ++i) {
            // 2018-03 edit: only account for row if it is visible
            if (!tableView->verticalHeader()->isSectionHidden(i)) {
                rowTotalHeight+=tableView->verticalHeader()->sectionSize(i);
            }
        }
    
    
        // Check for scrollbar visibility
        if (!tableView->horizontalScrollBar()->isHidden())
        {
             rowTotalHeight+=tableView->horizontalScrollBar()->height();
        }
    
    
        // Check for header visibility
        if (!tableView->horizontalHeader()->isHidden())
        {
             rowTotalHeight+=tableView->horizontalHeader()->height();
        }
        tableView->setMinimumHeight(rowTotalHeight);
    }
    当向表格里面添加或删除行数据是条用该方法即可合理的控制tableview的高度。

    三、运行效果展示

    点击insertbutton多添加几行数据。

    出现了滚动条,在导出图片

    导出的图片并没有滚动条,而是展示了,全部的tableview数据。

    详细的代码实例大家可以到https://download.csdn.net/download/soft_123456/10782161,

    有任何问题请留言讨论。

  • 相关阅读:
    SSL评测
    EF+SQLSERVER控制并发下抢红包减余额(改进)
    关于游标嵌套时@@FETCH_STATUS的值
    windows下限制Redis端口只能由本机访问
    windows下配置Redis
    Node.js 使用gm处理图像
    Git 与其他系统
    git-svn 简易 操作指南
    git-svn — 让git和svn协同工作
    Git和SVN共存的方法
  • 原文地址:https://www.cnblogs.com/tianmochou/p/9952628.html
Copyright © 2011-2022 走看看