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

正在做的项目遇到的问题 , 在缩略图列表中选择某一图,同时关联到图片list里高亮显示这个图片名字。

一开始我直接用setCurrentIndex(int) 来设置

if msg == "CAM1_Label_1":
  self.showCamOnTopScreen(0)
  self.device_listView.setCurrentIndex(0)

结果报错,提示

“setCurrentIndex(self, QModelIndex): argument 1 has unexpected type 'int'”

后来发现此处不能直接用int , 而应该跟用初始化时的model.index() 来设置。

修改如下:

if msg == "CAM1_Label_1":
  self.showCamOnTopScreen(0)
  idx = self.devicelistModel.index(0)
  self.device_listView.setCurrentIndex(idx)

补充:pyqt5 Qlistiew指定index显示

要求:

根据实验步骤, 指定显示当前的流程在哪个步骤。记录一下

# QListView使用
from PyQt5.QtWidgets import QMessageBox, QListView, QStatusBar, QMenuBar, QMenu, QAction, QLineEdit, QStyle, \
  QFormLayout, QVBoxLayout, QWidget, QApplication, QHBoxLayout, QPushButton, QMainWindow, QGridLayout, QLabel
from PyQt5.QtGui import QIcon, QPixmap, QStandardItem, QStandardItemModel
from PyQt5.QtCore import QStringListModel, QAbstractListModel, QModelIndex, QSize
import sys
class WindowClass(QMainWindow):
  def __init__(self, parent=None):
    super(WindowClass, self).__init__(parent)
    self.layout = QVBoxLayout()
    self.resize(200, 300)
    listModel = QStringListModel()
    listView = QListView()
    items = ["step0", "step1", "step2", "step3"]
    listModel.setStringList(items)
    listView.setModel(listModel)

    # 修改index的参数 ,即可指定当前的那个索引被选中
    listViewindex = listModel.index(1)

    listView.setCurrentIndex(listViewindex)
    listView.clicked.connect(self.checkItem)
    self.layout.addWidget(listView)
    widget = QWidget()
    widget.setLayout(self.layout)
    self.setCentralWidget(widget)
  def checkItem(self, index):
    QMessageBox.information(self, "ListView", "选择项是:%d" % (index.row()))
if __name__ == "__main__":
  app = QApplication(sys.argv)
  win = WindowClass()
  win.show()
  sys.exit(app.exec_())

listViewindex = listModel.index(3)和在listViewindex = listModel.index(1) 的情况下 的情况下

要注意判断输入的index的范围,

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

(0)

相关推荐

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

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

  • 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 实现多线程文件搜索的案例

    我学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 实现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主窗口图标显示问题汇总

    窗口程序的开发流程如下: 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设置登录界面及界面美化的实现

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

  • 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 QlistView列表显示的实现示例

    1.简介 QlistView类用于展示数据,它的子类是QListWIdget.QListView是基于模型(Model)的,需要程序来建立模型,然后再保存数据 QListWidget是一个升级版本的QListView,它已经建立了一个数据储存模型(QListWidgetItem),直接调用addItem()函数,就可以添加条目(Item) QListView类中常用的方法如表 方法 描述 setModel() 用来设置View所关联的Model,可以使用Python原生的list作为数据源Mod

  • PyQt5信号与槽机制案例详解

    信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解.信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方. 信号和槽是用来在对象间传递数据的方法:当一个特定事件发生的时候,信号会被发射出来,槽调用是用来响应相应的信号的.Qt中对象已经包含了许多预定义的信号(基本组件都有各自特有的预定义的信号),根据使用的场景也可以添加新的信号.同样Qt的对象中已经包含了许多预定义的槽函数,但也可以根据使用的场景添加新的槽函数. 一

  • python GUI库图形界面开发之PyQt5线程类QThread详细使用方法

    QThread是Qt的线程类中最核心的底层类.由于PyQt的的跨平台特性,QThread要隐藏所有与平台相关的代码 要使用的QThread开始一个线程,可以创建它的一个子类,然后覆盖其它QThread.run()函数 class Thread(QThread): def __init __(self): super(Thread,self).__ init __() def run(self): #线程相关的代码 pass 接下来创建一个新的线程 thread = Thread() thread

  • Python3.7安装PyQt5 运行配置Pycharm的详细教程

    系统:win10 64位  win7 64位都有测试了下, python版本3.7.3 安装PyQt5个人操作步骤,包裹在不同操作系统上遇到的问题,综合的解决 第一步:在cmd窗口中,使用国内镜像 下载PyQt5: pip install PyQt5 -i https://pypi.doubanio.com/simple 然后在下载PyQt5-tools: pip install PyQt5-tools -i https://pypi.doubanio.com/simple 出现成功这个单词,就

  • Java Swing中的JButton、JComboBox、JList和JColorChooser组件使用案例

    Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件. Swing 的基本组件: 1.按钮(JButton): Swing 中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮. (1).JButton 常用的构造方法. JButton(String text):按钮上显示字符. JButton(Icon icon) :按钮上显示图标. JButton(String text, Icon icon):按钮上既显示图标

  • Oracle使用触发器和mysql中使用触发器的案例比较

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志,自动通知好友,其实就是在增加日志的时候做一个出发,再向表中写入条目. --触发器的效率很高 举例:论坛的发帖,每插入一个帖子都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,这时使用触发器效率会很高. 二.Oracle 使用 PL/SQL 编写触发器 1.--PL/SQL创建触发器的一般语法

  • Android自定义控件案例汇总2(自定义开关、下拉刷新、侧滑菜单)

    案例四 自定义开关: 功能介绍:本案例实现的功能是创建一个自定义的开关,可以自行决定开关的背景.当滑动开关时,开关的滑块可跟随手指移动.当手指松开后,滑块根据开关的状态,滑到最右边或者滑到最左边,同时保存开关的状态,将开关的状态回调给调用者.当然,上述功能系统给定的switch控件也可以实现. 实现步骤: 1. 写一个类继承view,重写两个参数的构造方法.在构造方法中指定工作空间,通过attrs.getAttributeResourceValue方法将java代码中的属性值和xml中的属性值联

随机推荐