前面内容,我们展示了使用xlrd模块对Excel文件进行读取操作的方法。
数据获取
Excel文件另类操作,如何用Python中xlrd模块获取电子表格的信息
另外,我们对这个类进行了扩展应用,使用PyQt5中的QTableWidget控件,对该类获取到的电子表格数据在界面中进行了展示。
Excel中数据通过Python展现
用Python将电子表格Excel展示在界面中,PyQt5之QTableWidget应用
但是,上面的界面展示有个缺点,我们不能将一个Excel文件中全部工作表进行展示,案例中我们仅仅根据工作表名称展示了一个工作表。
工作表展示
今天,我们来详细了解下如何使用PyQt5中QTabWidget控件,结合前期我们定义的ExcelData类,对一个Excel文件中全部工作表进行展示。老套路,我们先来梳理下需要用到的基础知识。
01QTabWidget控件介绍
在设计界面时,如果一个界面内容太多,就显得很繁杂、不美观,不便于用户操作,使得界面编程的优点全然发挥不到。这时候,我们就要考虑使用一个控件容器,将不同功能的控件分页(类)显示。
页面布局很重要
这种控件有很多,QTabWidget控件就是其中之一,它提供了一个选项卡和一个页面区域,默认显示第一个选项卡页面。通过单击各个选项卡可以查看对应的页面。如果在一个窗口中显示同类控件很多,我们可以考虑将这些控件分为不同的页面,分别放置在相应的页面选项卡中。
【QTabWidget控件继承顺序】
QTabWidget类的继承顺序
它直接继承自QWidget控件,再来看下它提供的方法。
【QTabWidget常用方法】
【QTabWidget常用信号】
当单击选项卡时,我们有时候需要执行一些额外的动作,这时候,就要使用到它提供的信号了。常用信号为currentChanged,当我们切换当前选项卡时就会触发该信号。
02QTabWidget控件简单应用
我们知道,QTabWidget直接继承自QWidget,也可以说它就是一个个性化的QWidget控件。创建这种控件时,大体分三步,如下图所示:
创建QTabWidget控件的一般方法
然后,根据程序需求自己添加相应的内容。这里不做赘述了。我们来看下运行效果。
简单示例
下面,我们来看一个更复杂的例子。
03使用QTabWidget控件展示Excel工作簿中全部表格
前面例子中我们使用了QTableWidget控件展示了Excel工作簿中一个表格,当Excel工作簿中有多个表格时,我们如何进行展示呢?
【改进类】
我们仍然使用前面定义的ExcelData类,源代码如下
ExcelData类源代码
修改Table类,源代码如下,修改地方进行了标记。
Table类源代码
【创建一个Tab类】
我们创建一个新的Tab类,继承自QTabWidget类。注意,此时,我们将表格名称作为标签名称,标签单击后显示的控件就是相应的表格。源代码如下:
Tab类的源代码
【测试效果展示】
我们以一份三年级6个班级的Excel工作簿为数据源,如下图:
数据源
运行程序看下效果。
程序运行效果展示
成功获取到了Excel工作簿中的数据。
好了,今天的内容就到这里了,喜欢Python编程的小伙伴关注我,后续推出更精彩的内容。想要源码的小伙伴下方留言,私信发给你!
转载请注明出处,百家号:Python高手养成