Python中的Qt5是一个功能强大的GUI框架,而tableView是其中一个重要的组件,可以用于呈现表格数据。如果你想把tableView中的数据转换成Excel文件,可以使用Python中的openpyxl库。该库提供了一个简单的API,可以将Python数据结构转换为Excel文件。
具体来说,可以先将tableView中的数据提取出来,然后将其转换为Python中的数据结构,例如列表或字典。然后,使用openpyxl库创建一个新的Excel文件,将数据写入Excel文件的工作表中,最后保存Excel文件即可。
需要注意的是,转换过程可能会涉及到数据类型的转换和数据格式的设置,因为Excel对于不同数据类型和格式的数据有不同的处理方式。此外,还需要考虑Excel文件的大小和性能问题,因为大型数据集可能需要分批写入Excel文件或使用其他优化技术。
综上所述,将tableView中的数据转换为Excel文件需要使用Python中的openpyxl库,同时还需要考虑数据类型、数据格式、性能等方面的问题。
QPixmap 类是一种 off-screen 图像表示形式,可以用作绘画设备。使用 QLabel 或 QAbstractButton 的子类之一(例如 QPushButton 和 QToolButton ),可以轻松地在屏幕上显示 QPixmap 。 QLabel 具有 pixmap 属性,而 QAbstractButton 具有 icon 属性。
由于 QPixmap 类使用隐式数据共享,因此可以按值传递 QPixmap 对象。有关更多信息,请参见隐式数据共享( Implicit Data Sharing )文档。 QPixmap 对象也可以流式传输。
请注意,pixmap 中的像素数据是内部的,并由基础窗口系统管理。由于 QPixmap 是 QPaintDevice 子类,因此 QPainter 可用于直接绘制到 pixmap 上。只能通过 QPainter 函数或将 QPixmap 转换为 QImage 来访问像素。但是, fill() 函数可用于以给定的颜色初始化整个像素图。
有一些函数可以在 QImage 和 QPixmap 之间进行转换。通常,在将 QImage 对象转换为要在屏幕上显示的 QPixmap 之前,使用 QImage 类加载图像文件,并选择处理图像数据。或者,如果不需要任何 *** 作,则可以将图像文件直接加载到 QPixmap 中。
QPixmap 提供了一组函数,这些函数可用于获取有关像素图的各种信息。另外,有几个函数可以转换像素图。
从给定 fileName 的文件构造一个 pixmap。如果文件不存在或格式未知,则像素图将成为空像素图(null pixmap)。加载程序尝试使用指定的 format 读取像素图。如果未指定 format (默认设置),则加载程序会在文件中探测标头以猜测文件格式。文件名可以引用磁盘上的实际文件,也可以引用应用程序的嵌入式资源之一。 有关如何在应用程序的可执行文件中嵌入图像和其他资源文件的详细信息,请参见 Resource System 。
如果需要修改图像以适应较低分辨率的结果(例如,从32位转换为8位),请使用 flags 来控制转换。
fileName , format 和 flags 参数传递给 load() 。这意味着 fileName 中的数据未编译为二进制文件。如果 fileName 包含相对路径(例如,仅文件名),则必须找到相对于运行时工作目录的相关文件。
使用给定的 width 和 height 构造一个像素图。如果 width 或 height 为零,则构造一个空的像素图。警告:这将创建一个带有未初始化数据的 QPixmap 。调用 fill() 以用适当的颜色填充像素图,然后使用 QPainter 对其进行绘制。
下面以 QLabel 为例子说明如何使用 QPixmap :
效果:
QPixmap 提供了几种读取图像文件的方式:构造 QPixmap 对象时可以加载该文件,或者稍后使用 load() 或 loadFromData() 函数来加载该文件。加载图像时,文件名可以引用磁盘上的实际文件,也可以引用应用程序的嵌入式资源之一。有关如何在应用程序的可执行文件中嵌入和其他资源文件的详细信息,请参见 Qt资源系统概述 。
只需调用 save() 函数即可保存 QPixmap 对象。
可通过 supportedImageFormats() 和 supportedImageFormats() 函数获得受支持文件格式的完整列表。可以将新文件格式添加为插件。默认情况下,Qt支持以下格式:
使用 load() 从给定 fileName 的文件中加载像素图。如果成功加载了像素图,则返回 True ;否则会使像素图无效并返回 False :
效果:
请注意,从主线程中的文件加载时, QPixmap 会自动添加到 QPixmapCache 中。使用的 key 是内部密钥,无法获取。
loadFromData() 从给定二进制数据的 len 个前字节加载 pixmap。如果成功加载了像素图,则返回 true;否则会使像素图无效并返回 false。
save() 是一个重载函数。此函数使用指定的图像文件 format 和 quality 因数将 QPixmap 写入给定 device 。例如,这可以用于将像素图直接保存到 QByteArray 中:
QPixmap 提供了一组函数,这些函数可用于获取有关 pixmap 的各种信息:
createHeuristicMask([clipTight=true]) 创建并返回此像素图的启发式蒙版。该功能的工作原理是从任一角中选择一种颜色,然后从所有边缘开始切去该颜色的像素。 如果 clipTight 为true(默认值),则遮罩足够大以覆盖像素; 否则,掩码大于数据像素。
遮罩(mask)可能并不完美,但应该合理,因此您可以执行以下 *** 作:
此函数很慢,因为它涉及到 QImage 的转换以及非平凡的计算。可参考: createHeuristicMask() 、 createMaskFromColor() 。
可以使用 toImage() 函数将 QPixmap 对象转换为 QImage 。同样,可以使用 fromImage() 将 QImage 转换为 QPixmap 。如果此 *** 作过于昂贵,则可以改用 fromImage() 。
要将 QPixmap 与 HICON 相互转换,可以分别使用 QtWinExtras 函数 QtWin::toHICON() 和 QtWin::fromHICON() 。
QPixmap 支持许多用于创建新 pixmap 的功能,该新 pixmap 是原始 pixmap 的转换(transformed)版本: scaled() , scaledToWidth() 和 scaledToHeight() 函数返回像素图的缩放副本,而 copy() 函数创建的 QPixmap 是原始像素图的纯副本。
scaled() 返回根据给定的 AspectRatioMode 和 transformMode 缩放为具有给定 width 和 height 的矩形的像素图的副本。
scaledToWidth() 和 scaledToHeight() 使用方法类似于 scaled() :
copy() 返回由矩形 QRect ( x , y , width , height ) 指定的像素图子集的深层副本:
transformd() 函数返回使用给定的转换矩阵和转换模式转换的像素图的副本:在内部,调整转换矩阵以补偿不需要的平移,即 transform() 返回包含原始像素图的所有转换点的最小像素图。 静态 trueMatrix() 函数返回用于转换像素图的实际矩阵。
下列图像处理类也支持 Transformations 中的这些函数:
QBitmap QImage QImageReader QImageWriter
PySide2QtGuiQPixmapisNull() 如果这是一个空的像素图,则返回 true;否则返回 false。
PySide2QtGuiQPixmapswap(other) 用此像素图交换 other (即 QPixmap 实例)。 此 *** 作非常快,并且永远不会失败。
华开发
原创
关注
2点赞·1821人阅读
Qt程序编写完成后,我们应该怎么给其他人安装呢?其实我们只需要知道Qt程序所依赖的动态库就可以直接拷贝将exe和动态库拷贝到其他人电脑上直接运行(也就是传说中的绿色免安装版)。Qt所依赖的动态库我们通过部署来获取。Qt程序部署有两种方式,一种通过QtCreator获取,另外一种是在cmd窗口使用windeployqt命令获取。
1QtCreator部署exe程序
我们首先新建一个Test工程(如果对如何创建工程不清楚可参考Qt第一个例程)。
首先我们先不部署看一下生成目录中包含哪些文件。
在该文件夹中实际上只有Textexe有用,其他都为中间文件可以删除。
接下来我们看如何使用QtCreator部署程序。新建完成后构建->部署项目”Test”按钮是不可用状态,需要我们先设置一下部署流程。
点击左侧项目按钮,主窗口切换到构建界面。再次点击左侧Run按钮,主窗口就切换到运行设置界面。在此界面,点击添加部署步骤,选择自定义处理步骤。
在命令编辑框可以输入windeployqt。
在参数编辑框中点击右侧的A->B按钮。
这时会d出参数的一个选择界面。在这个地方我选择了CurrentRun:Executable:FilePath这个参数。在界面下方我们可以看到这个参数代表的是E:/qt/build-Test-Desktop_Qt_5_11_2_MSVC2017_64bit-Debug/debug/Test,也就是执行程序所在路径和执行程序的名称。
但实际上我们还需要在该参数后面加个exe,表示这是执行文件。在有的版本中可以找到直接带exe的参数,但本人使用的Qt 5112中没有找到。如果有知道的朋友可以留言告知一下。
到这个时候我们的部署步骤就添加完成。接下来我们再找到编辑界面。只需点击左侧的编辑按钮即可。
然后在项目上右键点击,选择部署按钮。
在编译输出窗口看到以下信息说明部署完成。
接下来我们再看一下构建目录下的文件。这个时候我们发现这个目录下会多出很多dll文件。这就是我们执行文件所以来的动态库。我们把这个文件夹拷贝给用户,用户点击exe就可以运行了。但这种方式有个弊端就是会有很多中间文件,比如mainobg,mainwindowobj等。我们需要把这些文件删除或者写个脚本删除这个文件。
2cmd窗口部署exe程序
在cmd窗口部署exe程序之前,我们需要将windeployqt所在路径配置到环境变量中。
右键点击计算机,选择属性,d出下面的对话框,选择高级系统设置。
在系统属性中选择高级->环境变量。
选择系统变量的Path变量,点击编辑。
将windeployqt所在路径添加到变量值中(需要注意要在路径前添加;)。Windeployqt默认路径为C:\Qt\Qt5112\5112\msvc2017_64\bin。C:是我的Qt安装盘符,这个需要根据大家自己的路径选择。msvc2017_64是我使用的编译器。每个编译器下都有自己的Windeployqt。添加完成后点击确定按钮。准备工作已经做完了,我们可以开始部署程序。
首先我们将exe程序单独拷贝的一个文件夹中。
我们使用快捷键win+R打开运行界面,输入cmd点击回车。
还有另外一种方法是直接在文件夹路径位置输入cmd,点击回车。
这时打开的路径就是exe所在路径,否则需要先跳转到exe所在路径。
在cmd窗口输入windeployqt Testexe,然后点击回车。
看到如下信息就说明部署已经完成。我们只需要将此文件夹拷贝给用户即可。
3总结
Qt程序部署看似两种方法其实核心是一致的,都是调用windeployqt生成所需动态库,只不过是使用Qt Creator方法配置完成后只需点击按钮即可,更为方便一些。
调用QImage类的fill方法。
如:
QImage image;
//
imagefill(QColor(255, 0, 0, 255));
这里:
QColor(r, g, b, a);
r设置成255;
g、b通道设置为0;
a通道设置为255(不透明)。
以上就是关于pythonqt5tableview转excel全部的内容,包括:pythonqt5tableview转excel、Qt 之 QPixmap、qt怎么部属等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)