pyqt5 QListWidget的用法解析

1、简介

QListWidget 是一个升级版本的QListView , 它已经建立一个基于数据存储模型(QListWidgetItem),直接调用addItem()函数就可以添加条目(Item)。

2、功能实现

# -*- coding: utf-8 -*-
'''
  【简介】
 PyQt5中 QListWidget 例子

'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class ListWidget(QListWidget):
 def clicked(self,item):
 QMessageBox.information(self, "ListWidget", "你选择了: "+item.text())# 显示出消息提示框
if __name__ == '__main__':
 app = QApplication(sys.argv)
 listWidget = ListWidget() #创建一个listWidget 实例
 listWidget.resize(300,120) #定义尺寸大小
 listWidget.addItem("Item 1"); #添加item
 listWidget.addItem("Item 2");
 listWidget.addItem("Item 3");
 listWidget.addItem("Item 4");
 listWidget.setWindowTitle('QListwidget 例子') #设置标题
 listWidget.itemClicked.connect(listWidget.clicked) #绑定点击事件
 listWidget.show()
 sys.exit(app.exec_())

补充:QListWidget右键菜单功能Demo

1.

ui.listWidget_Filelist->setContextMenuPolicy(Qt::CustomContextMenu);

2.

void SonicAttribute::on_listWidget_Filelist_customContextMenuRequested(const QPoint &pos)
{
 QListWidgetItem* curItem = ui.listWidget_Filelist->itemAt(pos);
 if (curItem == NULL)
 return;

 QMenu *popMenu = new QMenu(this);
 QAction *deleteSeed = new QAction(tr("Delete"), this);
 popMenu->addAction(deleteSeed);
 connect(deleteSeed, SIGNAL(triggered()), this, SLOT(deleteSeedSlot()));
 popMenu->exec(QCursor::pos());
 delete popMenu;
 delete deleteSeed;
}
 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • Pyqt5 实现多线程文件搜索的案例

    我学Java的时候也用Swing做了一个文件搜索的小程序,但界面真的挺丑的,现在学了点python,感觉python是最简单的语言,没有之一. (大家没事都可以来学的,真的很简单有趣哦) 我采用的是pyqt5,所以需要先安装Pyqt5模块 直接cmd命令输入 pip install pyqt5 闲言少叙,上代码!! # -*- coding: utf-8 -*- # @Time : 2018\9\15 20:39 # @Author : Tang weiyang # @File : FileSe

  • PyQt5 QListView 高亮显示某一条目的案例

    正在做的项目遇到的问题 , 在缩略图列表中选择某一图,同时关联到图片list里高亮显示这个图片名字. 一开始我直接用setCurrentIndex(int) 来设置 if msg == "CAM1_Label_1": self.showCamOnTopScreen(0) self.device_listView.setCurrentIndex(0) 结果报错,提示 "setCurrentIndex(self, QModelIndex): argument 1 has unex

  • 关于PyQt5主窗口图标显示问题汇总

    窗口程序的开发流程如下: 1. 先通过qt designer设置界面并将程序图标设置好,通过在designer中按ctrl + R 进行预览可以看到窗口左上角的图标,然后保存 2. 通过pyuic5和pyrcc5命令将ui文件和qrc文件转换为py文件 3.然后在主程序中将界面显示出来,源码如下: class Main(QMainWindow, Ui_MainWindow, QWidget): def __init__(self, parent=None): super(Main, self).

  • 使用pyqt5 实现ComboBox的鼠标点击触发事件

    一.自定义MyComboBox # MyComboBox.py from PyQt5.QtWidgets import QComboBox from PyQt5.QtCore import pyqtSignal class MyComboBox(QComboBox): clicked = pyqtSignal() #创建一个信号 def showPopup(self): #重写showPopup函数 self.clicked.emit() #发送信号 super(MyComboBox, self

  • PyQt5按下按键选择文件夹并显示的实现

    问题: 使用PyQt5开发桌面程序,实现功能为:按下按键,打开文件夹,选择文件夹,并将路径显示出来. 解决方法: 一.主要函数(直接能运行的代码见二) 1.选择文件夹并显示 def msg(self,Filepath): directory = QtWidgets.QFileDialog.getExistingDirectory(None,"选取文件夹","C:/") # 起始路径 self.fileT.setText(directory) 2.选择文件 def m

  • PyQt5设置登录界面及界面美化的实现

    写在前面 前一段时间博主刷了半个多月的LeetCode算法题,刷的归类为简单的那些题,做到自己简直要怀疑人生.想着人生在世,何苦这么为难自己呢,何不做点自己擅长的东西.想到博主还有个项目没做完呢,于是开始捣鼓起来.项目的最终成果是要写一个软件,把所有研究的内容可视化的展示出来,研究的内容都写的差不多了,还差个登录界面,于是就开始元气满满的干起来. 先上编译环境: Python3.7 pycharm2020专业版 PyQt5 博主习惯用Spyder做编译器,但如果做大项目,最好还是用pycharm

  • pyqt5 QListWidget的用法解析

    1.简介 QListWidget 是一个升级版本的QListView , 它已经建立一个基于数据存储模型(QListWidgetItem),直接调用addItem()函数就可以添加条目(Item). 2.功能实现 # -*- coding: utf-8 -*- ''' [简介] PyQt5中 QListWidget 例子 ''' import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets

  • pyqt5自定义信号实例解析

    本文研究的主要是pyqt5自定义信号实例解析的相关内容,具体介绍如下. PyQt5已经自动定义了很多QT内建的信号.但是在实际的使用中为了灵活使用信号与槽机制,我们可以根据需要自定义signal.可以使用pyqtSignal()方法定义新的信号,新的信号作为类的属性. 自定义signal说明: pyqtSignal()方法原型(PyQt官网的定义): PyQt5.QtCore.pyqtSignal(types[, name[, revision=0[, arguments=[]]]]) Crea

  • Python PyQt5标准对话框用法示例

    本文实例讲述了Python PyQt5标准对话框用法.分享给大家供大家参考,具体如下: 很全的Qt的标准对话框,包含QInputDialog.QColorDialog.QFontDialog.QMessageBox.QOpenFileDialog... 全部是由官网的C++版本,转换成PyQt5版本. 有些细节忽略了,因为实在不知怎么转换过来.捣鼓了一晚上,总算完成了,好累啊,不过很开心! 效果图: 完整代码: # -*- coding: utf-8 -*- from PyQt5.QtGui i

  • mysql having用法解析

    having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. SQL实例: 一.显示每个地区的总人口数和总面积. SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region 先以region把返回记录分成多个组,这就是GROUP BY的字面含义.分完组后,然后用聚合函数对每组中 的不同

  • sql中的 where 、group by 和 having 用法解析

    废话不多说了,直接给大家贴代码了,具体代码如下所示: --sql中的 where .group by 和 having 用法解析 --如果要用到group by 一般用到的就是"每这个字" 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术 select DepartmentID as '部门名称',COUNT(*) as '个数' from BasicDepartment group by DepartmentID --这个就是使用了group by +字段 进行了分组

  • Java Thread多线程详解及用法解析

    最全面的java多线程用法解析,如果你对Java的多线程机制并没有深入的研究,那么本文可以帮助你更透彻地理解Java多线程的原理以及使用方法. 1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread构造函数: public Thread( ); public Thread(Runnab

  • Thinkphp 中 distinct 的用法解析

    TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html#distinct) 下面是我的个人例子: 显示的是这样的 在加入distinct的话: 显示结果为 下面为贴出来的代码 $offernum = M('offer')->distinct(true)->where('order_id='.$order_id)->field('user_id,number')-

  • Python random模块用法解析及简单示例

    用法示例: import random # 1)随机小数 print(random.random()) # 获取大于0且小于1 之间的小数 random.random() print(random.uniform(1, 4)) # 获取大于1小于3的小数 # 2)随机整数 print(random.randint(1, 9)) # 获取大于等于1且小于等于9之间的整数 print(random.randrange(1, 9)) # 获取大于等于1且小于9之间的整数 print(random.ra

  • es6新特性之 class 基本用法解析

    javaScript 语言中,生成实例对象的传统方法是通过构造函数,与传统的面向对象语言(比如 C++ 和 Java)差异很大,ES6 提供了更接近传统语言的写法,引入了 class(类)这个概念,作为对象的模板.通过class关键字,可以定义类. es6 class 与es5的面向对象的区别: 1. 写法不同,使用关键字class 2.当new一个实例,默认有一个constructor方法,且默认返回实例对象(this),也可以返回另一对象 3.类的所有方法都在prototype属性上,但是不

  • PyQt5 QListWidget选择多项并返回的实例

    参考Stack Overflow Python: How to query multiple selected items in QListWidget in PyQt from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * listItem = ['a','b','c','d','e'] if listItem is not None and len(listItem) > 0: se

随机推荐