一、List View
学习方法和Buttons一样,大家自己在qt设计师上面在属性编辑区进行相应的学习!
我就先紧着qt设计师的页面进行讲解,部分内容查自AI。
后面有什么好用的控件或者拓展的,我会单独出,!
定义与用途:
定义:
ListView(列表视图)是图形用户界面(GUI)中用于展示数据列表的一种组件。它以一种有序的方式呈现数据项,通常每个数据项占据一行,并且可以包含文本、图标或其他自定义的内容。用户可以通过滚动条浏览列表中的所有项目,并且可以对列表项进行选择、排序、分组等操作。
用途举例:
在文件管理器中,文件和文件夹列表通常通过ListView展示,用户可以查看文件名称、大小、修改日期等信息;在音乐播放器的播放列表界面,歌曲列表以ListView形式呈现,方便用户选择歌曲进行播放;在邮件客户端中,收件箱中的邮件列表也是ListView的典型应用场景,用户可以查看邮件主题、发件人等信息,并选择邮件进行阅读。
外观特点:
行式布局:
ListView以垂直排列的行来展示数据项。每一行代表一个数据元素,行的高度可以根据数据内容的多少或预设的样式进行调整。例如,在展示文件列表时,文件名较长的文件对应的行可能会更高,以完整显示文件名。
可选的头部和分隔符:
可以有列表头部(header),用于显示列名(如果是多列数据),如在文件管理器的列表视图中,头部可能会显示 “名称”“大小”“类型”“修改日期” 等列标题。同时,列表项之间可能会有分隔线,用于视觉上区分不同的项目,增强可读性。
滚动条支持:
当列表中的数据项数量超过视图的可见范围时,会自动出现滚动条
,用户可以使用滚动条上下滚动来查看所有的项目。滚动条的样式和行为通常可以根据操作系统或应用程序的设计风格进行定制。
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QListView,QVBoxLayout
from PySide6.QtCore import QStringListModel
class Mainwindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("LIst View 学习!")
self.setGeometry(100, 100, 400, 300)
# 创建中央布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建垂直布局
ver_layout = QVBoxLayout()
# 创建listview
list_view = QListView()
# 创建数据模型
model = QStringListModel()
str_list = ["王", "李", "孙", "赵000000000000000000000000000000000000000000000000000000000000000000000000"]
model.setStringList(str_list)
# 将数据模型与listView关联
list_view.setModel(model)
# 添加list到垂直布局
ver_layout.addWidget(list_view)
# 添加到中心布局
central_widget.setLayout(ver_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainwindow = Mainwindow()
mainwindow.show()
sys.exit(app.exec())
二、Tree View
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QTreeView, QVBoxLayout
from PySide6.QtGui import QStandardItemModel, QStandardItem
class MainWindow(QMainWindow):