表格与树1-QTableView
表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据。PyQt提供了两种控件类用于解决该问题,其中一种是表格结构的控件类;另一种是树形结构的控件类。
1、QTableView
在通常情况下,一个应用需要和一批数据(比如数组、列表)进行交互,然后在以表格的形式输出这些信息,这时就要用到QTableView类了。在QtableView中可以使用自定义的数据模型来显示内容,通过setModel来绑定数据来源。
QTableWidget继承自QTableView,主要区别是QTableView可以使用自定义的数据模型来显示内容(先要通过setModel来绑定数据源),而 QTableWidget只能使用标准的数据模型,并且其单元格数据是通过QTableWidgetItem对象来实现的。通常使用QTableWidget就能够满足我们的要求。
OTableView 控件可以绑定一个模型数据用来更新控件上的内容,可用的模式如下表所示。

实例演示:QTableView使用
运行程序,显示效果如下图所示。

从图中可以看出,表格并没有填满窗口,每列可以自由拉动,但是可能会出现滚动条。
1)需要表格填满窗口,可以添加下面代码。
此时,如何拉动窗口,表格都会占满整个窗口,运行显示效果如下:

2)添加数据
运行,显示效果如下。

3)删除当前选中的数据
第一种方法:
删除当前选中的行:
当然,在初始化中,需要添加钩子函数:
运行代码,鼠标左键选中第二行,效果如下:

发现第二行,也就是“row 1” 这行数据被删除,可以继续点击其他行,直至删完为止。
第二种方法:
功能同上,同时会输出打印当前选中行的标号。
显示效果图片不在上传,可以自己尝试下,尝试过程中有任何问题,欢迎留言讨论!