Python Qt学习(七)Listview

news2025/1/18 4:47:33

源代码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'qt_listview.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
import sys

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 513)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.listView = QtWidgets.QListView(self.centralwidget)
        self.listView.setGeometry(QtCore.QRect(10, 10, 311, 431))
        self.listView.setObjectName("listView")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(370, 30, 131, 28))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(370, 80, 131, 28))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(370, 130, 131, 28))
        self.pushButton_3.setObjectName("pushButton_3")

        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.pushButton.clicked.connect(self.initListView)
        self.pushButton_2.clicked.connect(self.getCurrentItem)
        self.pushButton_3.clicked.connect(self.getAllSelectedItem)

        self.model= QtGui.QStandardItemModel()
        self.listView.setModel(self.model)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Init List View"))
        self.pushButton_2.setText(_translate("MainWindow", "Get Current Item"))
        self.pushButton_3.setText(_translate("MainWindow", "Get All Selected Item"))

    def show(self, Form):
        Form.show()
    
    def initListView(self):
        
        item_list=['line 1', 'line 2', 'line 3']
        for i in item_list:
            item=QtGui.QStandardItem(i)
            item.setCheckable(True)
            self.model.appendRow(item)
    
    def getCurrentItem(self):
        data=self.listView.currentIndex().data()
        index=self.listView.currentIndex().row()

        if index>=0:
            msg= "Current Selected Item Data = " + data + "\r\n" + "Current Selected Item Index="+str(index)
            self.messageBox(msg)

    def messageBox(self,msg):
        msgBox = QtWidgets.QMessageBox()
        msgBox.setIcon(QtWidgets.QMessageBox.Icon.Information)
        msgBox.setWindowTitle("Qt Message Box")
        msgBox.setText(msg)
        msgBox.setStandardButtons(QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.Cancel)
        returnValue = msgBox.exec()        

    def getAllSelectedItem(self):
        i=0
        msg=""
        while self.model.item(i):
            if self.model.item(i).checkState():
                print("hell0")
                msg=msg+self.model.item(i).text()+"\r\n"
            i+=1

        self.messageBox(msg)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    Form=QtWidgets.QMainWindow()    
    main_win = Ui_MainWindow()    
    main_win.setupUi(Form)
    main_win.show(Form)

    sys.exit(app.exec())        

截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/960221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库设计DDL

DDL:数据定义语言,用来定义数据库对象(数据库、表) DDL(数据库操作) 查询: 查询所有数据库:show databases; 查询当前数据库:select database(); 使用: 使用…

前端实习第七周周记

前言 第六周没写,是因为第六周的前两天在处理第五周的样本库部分。问题解决一个是嵌套问题(因为我用到了递归),还有一个问题在于本机没有问题,打包上线接口404。这个问题我会在这周的总结中说。 第六周第三天才谈好新…

RT-Thread 线程管理(二)

系统线程 系统线程是指由系统创建的线程,用户线程是由用户程序调用线程管理接口创建的线程,在 RT-Thread 内核中的系统线程有空闲线程和主线程。 空闲线程 空闲线程(idle)是系统创建的最低优先级的线程,线程状态永远…

解决D盘的类型不是基本,而是动态的问题

一、正确的图片 1.1图片 1.2本人遇到的问题 二、将动态磁盘 转为基本盘 2.1 基本概念,动态无法转化为基本,不是双向的,借助软件 网址:转换动态磁盘到普通磁盘_检测到计算机本地磁盘为动态分区_卫水金波的博客-CSDN博客 2.2分区…

每日一题 2240. 买钢笔和铅笔的方案数

难度:中等 枚举就行 class Solution:def waysToBuyPensPencils(self, total: int, cost1: int, cost2: int) -> int:res 0for i in range(total//cost1 1):res (total - i * cost1) // cost2res 1return res

高等数学啃书汇总重难点(四)不定积分

本章主要考察方法性的技巧,对于某些理论性的概念,建议在练习中加强理解,不定积分的要义在于不断练习、不断拓宽眼界 一.不定积分的概念 二.原函数存在定理 三.不定积分的定义 四.基本积分表 五.不定积分的性质 六.一类换元法 七.二类换元法 八…

phpstorm配置链接sqlserver数据库

开启sqlserver的TCP/IP 1433端口

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS DMIPS(Dhrystone Million Instructions Per Second): DMIPS用于衡量计算机系统的整体指令执行性能,通常关注整数操作。它基于Dhrystone基准测试来计算,该测试主要包含整数运…

如何利用好 IntelliJ IDEA 的调试功能辅助代码调试

文章目录 调试的重要性配置断点启动调试利用 IntelliJ IDEA 的调试功能观察变量和表达式单步执行和逐级跳转查看调用栈条件断点监视变量远程调试使用断点条件和日志 调试最佳实践总结 🎉欢迎来到Java学习路线专栏~如何利用好 IntelliJ IDEA 的调试功能辅助代码调试 …

YOLOv8超参数调优教程! 使用Ray Tune进行高效的超参数调优!

原创文章为博主个人所有,未经授权不得转载、摘编、倒卖、洗稿或利用其它方式使用上述作品。违反上述声明者,本站将追求其相关法律责任。 这篇博文带大家玩点新的东西,也是一直以来困扰大家最大的问题—超参数调优! 之前的 YOLOv5 我使用遗传算法做过很多次调优,实验一跑就…

实战项目 在线学院之集成springsecurity

一 操作配置 1.0 工程结构 1.1 在common下创建spring_security模块 1.2 pom文件中依赖的注入 1.3 在service_acl模块服务中引入spring-security权限认证模块 1.3.1 service_acl引入spring-security 1.3.2 在service_acl编写查询数据库信息 定义userDetailServiceImpl 查询用…

day08-领取优惠券(高并发优化:超卖、锁失效、事务边界、事务失效)

由于优惠券的发放数量限制、每人限领数量限制,因此在领取优惠券的过程中必须判断优惠券的库存以及当前用户的领取数量。也就是避免出现超发现象,这跟电商中的库存超卖是处理是类似的。 通过今天的学习,希望大家可以达成下列目标:…

【网络教程】群晖如何正确的安装openwrt旁路由

文章目录 准备安装导入镜像创建虚拟机访问旁路由旁路由网络设置准备 我这里的环境是群晖DSM7.2版本首先大家需要预先安装套件Virtual Machine Manager,这里就省略了 根据个人需求去下载openwrt的固件,下载的时候选择x86的img镜像文件,这里也可以直接使用我使用的这个固件(资…

ArcGIS土地利用程度综合指数分析

成图展示: 土地利用程度综合指数 第一步 准备数据 使用的数据为2010年河南省土地利用类型数据与其行政区划县级数据(为了节省操作,这里使用上次实验的部分数据[1],各土地利用类型已被提取) 第二步 面积统计 水域为例…

倍量阳线后缩倍阴选股公式,识别短期行情拐点

成交量(VOL)是指一段时间内成交的总手数,反映了资金的流入和流出,是判断市场走势的重要指标,为分析主力行为提供了重要参考。本文结合价格和成交量,编写倍量阳线后缩倍阴选股公式。 在技术分析中,可以利用成交量来衡量…

叮!你的 AI安全“秘籍”已送达,请签收

2023年初,全球生成式 AI 产业迎来了爆发式增长,大量AI产品和应用纷纷落地,让用户深度感知AI的魅力。预计到2032年,生成式AI市场的营收规模将从2022年的400亿美元增长至1.3万亿美元。 就在大量用户“尝鲜”生成式 AI 时&#xff0…

湖南省天农农家食品以“数”驱变,产销一体升级,探索食品供应链新模式|亿发

2023年,数字化技术作为重塑食品行业重要的力量,正以不可逆转的趋势改变着企业经营的方式。食品行业如何把握机遇,才能在时代竞争中探索新 生? 于逆势,择同行。本文以天农农家食品为实例,阐述传统产供销食品企业的数字…

查找(考研数据结构)

一、二叉查找树(BST) 1、BST的性质 【2011统考】下列关键字序列,不可能构成某二叉排序树中一条查找路径的是(A) A、95,22,91,24,94,71 B、92&#x…

Uncaught ReferenceError: process is not defined

最近在搞老项目升级,将Vue2.6.11里的vuecli5.0.8升级到vite最新版本4.4.9,中间遇到不少问题,有机会以后做记录。 遇到问题 把所有的工作就搞好项目也成功的跑起来,页面一片空白。打开控制台 Uncaught ReferenceError: process is not defi…