• 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,

    有任何问题请留言讨论。

  • 相关阅读:
    循环播放音乐
    在发板实现24位jpg和bmp图片用手划动显示上一张与下一张图片
    AnsiIO
    PosixIO
    java3
    java2
    java1
    ios音乐播放器demo
    添加文章查看连接
    elementary os变成mac风(笔记)
  • 原文地址:https://www.cnblogs.com/tianmochou/p/9952628.html
Copyright © 2020-2023  润新知