拆分窗口QSplitter
拆分窗口中可以添加许多子控件,各个子控件通过拆分线相互分隔开来,拖动该拆分线可以随意改变子控件大小
1 import sys 2 from PyQt5.QtCore import Qt 3 from PyQt5.QtWidgets import QApplication, QSplitter, QListView, QTreeView, QTableView, QDirModel,QWidget 4 5 class Demo(QWidget): 6 def __init__(self): 7 super(Demo, self).__init__() 8 self.resize(800,220) 9 self.p=QSplitter(self) #实例化拆分窗口 10 self.dir_model = QDirModel(self) # 实例化目录模型QDirModel 11 12 self.list_view = QListView(self) 13 self.tree_view = QTreeView(self) 14 self.table_view = QTableView(self) 15 self.list_view.setModel(self.dir_model) #给列表视图设置模型【目录模型】 16 self.tree_view.setModel(self.dir_model) #给树形视图设置模型【目录模型】【列出目录-非常好】 17 self.table_view.setModel(self.dir_model)#给表格视图设置模型 18 self.tree_view.move(270,0) 19 self.table_view.move(540,0) 20 21 self.tree_view.doubleClicked.connect(self.show_func) #双击树形视图时发出信号 22 #此信号会自动发出包含被双击项信息的参数 23 24 #self.p.setOrientation(Qt.Vertical) #设置拆分窗口的方向 25 #Qt.Vertical 垂直方向 26 #拆分窗口默认是水平 27 28 self.p.addWidget(self.list_view) #给拆分窗口添加控件 29 self.p.addWidget(self.tree_view) 30 self.p.insertWidget(0, self.table_view) #给拆分窗口插入控件。参数1:位置 31 self.p.setSizes([300, 200, 200]) #设置子控件的高度-垂直,宽度-水平 32 print(self.p.count()) #返回子控件的数量 33 # 34 35 def show_func(self, index): 36 37 self.list_view.setRootIndex(index) #设置列表视图的根索引。把index项目做为列表视图的根索引并显示出来 38 self.table_view.setRootIndex(index) #设置表格视图的根索引 39 40 41 if __name__ == '__main__': 42 app = QApplication(sys.argv) 43 demo = Demo() 44 demo.show() 45 sys.exit(app.exec_())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)