zoukankan      html  css  js  c++  java
  • PyQt5-高级控件使用(QListWidget)

    QListWidget是一个用于显示数据的列表,每个条目中都是一个QListWidgetItem对象;QListWidget可以设置多选;

    常用方法如下:

    常用信号:

    例如:

     1 #QListWidget 控件使用
     2 from PyQt5.QtWidgets import   QMessageBox,QListWidget,QListWidgetItem, QStatusBar,  QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout,   QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel
     3 from PyQt5.QtGui import QIcon,QPixmap,QStandardItem,QStandardItemModel,QCursor
     4 from PyQt5.QtCore import QStringListModel,QAbstractListModel,QModelIndex,QSize,Qt
     5 import sys
     6 
     7 class WindowClass(QWidget):
     8 
     9     def __init__(self,parent=None):
    10         self.f=""
    11         super(WindowClass, self).__init__(parent)
    12         self.layout=QVBoxLayout()
    13         self.resize(400,300)
    14         self.view=QListWidget()
    15         #self.view.setViewMode(QListWidget.ListMode) #QListWidget.IconMode
    16 
    17         self.view.setLineWidth(50)
    18         self.view.addItems(["C","A","D","S"])
    19         self.layout.addWidget(self.view)
    20         self.setLayout(self.layout)
    21 
    22         self.view.clicked.connect(self.check)#单击选中某一个选项
    23         '''''
    24             创建右键菜单
    25             '''
    26         # 必须将ContextMenuPolicy设置为Qt.CustomContextMenu
    27         # 否则无法使用customContextMenuRequested信号
    28         self.setContextMenuPolicy(Qt.CustomContextMenu)
    29 
    30 
    31         # 创建QMenu
    32         self.contextMenu = QMenu(self)
    33         self.actionA = self.contextMenu.addAction(QIcon("images/0.png"), u'|  删除')
    34 
    35         # 显示菜单
    36         self.customContextMenuRequested.connect(self.showContextMenu)
    37 
    38         #点击删除menu
    39         self.contextMenu.triggered[QAction].connect(self.remove)
    40 
    41     def check(self,index):
    42         r=index.row()
    43         self.f=r;
    44     def showContextMenu(self):
    45         #如果有选中项,则显示显示菜单
    46         items=self.view.selectedIndexes()
    47         if items:
    48           self.contextMenu.show()
    49           self.contextMenu.exec_(QCursor.pos())  # 在鼠标位置显示
    50     def remove(self,qAction):
    51         print(self.f)
    52         #self.view.takeItem(self.f)#删除行(实际上是断开了与list的联系)
    53 
    54         #注意:removeItemWidget(self, QListWidgetItem)  # 移除一个Item,无返回值
    55         #注意:takeItem(self, int)  # 切断一个Item与List的联系,返回该Item
    56         self.view.removeItemWidget(self.view.takeItem(self.f))  #删除
    57 
    58 if __name__=="__main__":
    59     app=QApplication(sys.argv)
    60     win=WindowClass()
    61     win.show()
    62     sys.exit(app.exec_())

  • 相关阅读:
    安装IDEA
    缓存工具CacheUtil
    使用Eclipse上传/下载Git项目
    Sublime文本排序&查找重复行&删除重复行
    Sublime Text 3 配置Java开发
    安装XMind
    安装Maven
    安装MySQL
    安装Eclipse及相关Plugin
    Android Xposed框架中创建模块的指导手册
  • 原文地址:https://www.cnblogs.com/ygzhaof/p/10077658.html
Copyright © 2011-2022 走看看