zoukankan      html  css  js  c++  java
  • 列表视图QlistView

    列表视图QlistView要配合setModel模型一起使用

    例子一 QStringListModel()  字符串列表模型

     1 import sys
     2 from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QListView,QMessageBox
     3 from PyQt5.QtCore import QStringListModel
     4 
     5 class Demo(QWidget):
     6     def __init__(self,parent=None):
     7         super(Demo, self).__init__()
     8 
     9         
    10         self.resize(300,270)
    11         self.setWindowTitle('QListView 例子')
    12 
    13         layout=QVBoxLayout()
    14 
    15         self.listview=QListView()  #实例化列表视图
    16 
    17         slm=QStringListModel()  #实例化字符串列表模型
    18         self.qList=['Item 1','Item 2','Item 3','Item 4']
    19 
    20         slm.setStringList(self.qList) #给字符串列表模型对象添加数据-字符串列表
    21 
    22         self.listview.setModel(slm)  #给列表视图设置模型
    23 
    24         self.listview.clicked.connect(self.clicked)  #列表视图被单击时触发信号
    25         #此信号会自动发出一个参数:被选中项的信息对象
    26 
    27         layout.addWidget(self.listview)  #【QListView好像只能在布局控件中才能显示??】
    28         self.setLayout(layout)
    29 
    30 
    31 
    32     def clicked(self,qModelIndex):
    33         print(qModelIndex)     #<PyQt5.QtCore.QModelIndex object at 0x00000025A764BC88>
    34         print(qModelIndex.row())   #获取选中项的索引号
    35         #提示信息弹窗,你选择的信息
    36         QMessageBox.information(self,'ListWidget','你选择了:'+self.qList[qModelIndex.row()])
    37 if __name__ == '__main__':
    38     app=QApplication(sys.argv)
    39     win=Demo()
    40     win.show()
    41     sys.exit(app.exec_())
    self.listview.doubleClicked.connect(self.aa) #列表视图被双击时触发信号
    # 此信号会自动发出一个参数:被选中项的信息对象




     例子二  QDirModel 目录模型

     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.dir_model = QDirModel(self)  # 实例化目录模型QDirModel
    10 
    11         self.list_view = QListView(self)
    12         self.tree_view = QTreeView(self)
    13         self.table_view = QTableView(self)
    14         self.list_view.setModel(self.dir_model) #给列表视图设置模型【目录模型】
    15         self.tree_view.setModel(self.dir_model) #给树形视图设置模型【目录模型】【列出目录-非常好】
    16         self.table_view.setModel(self.dir_model)#给表格视图设置模型
    17         self.tree_view.move(270,0)
    18         self.table_view.move(540,0)
    19 
    20         self.tree_view.doubleClicked.connect(self.show_func) #双击树形视图时发出信号
    21         #此信号会自动发出包含被双击项信息的参数
    22 
    23     
    24     def show_func(self, index):
    25 
    26         self.list_view.setRootIndex(index)  #设置列表视图的根索引。把index项目做为列表视图的根索引并显示出来
    27         self.table_view.setRootIndex(index) #设置表格视图的根索引
    28 
    29 
    30 if __name__ == '__main__':
    31     app = QApplication(sys.argv)
    32     demo = Demo()
    33     demo.show()
    34     sys.exit(app.exec_())
  • 相关阅读:
    React Native 四:图片
    hadoop集群ambari搭建(1)之ambari-server安装
    OpenGL核心之视差映射
    大数据分析:结合 Hadoop或 Elastic MapReduce使用 Hunk
    在Android实现client授权
    HDU 5072 Coprime (单色三角形+容斥原理)
    mmtests使用简介
    win7 以管理员身份运行cmd, windows services 的创建和删除
    php使用curl设置超时的重要性
    window下查看端口命令
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10384730.html
Copyright © 2011-2022 走看看