脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - PyQt5 QListView 高亮显示某一条目的案例

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

2021-09-24 00:28weixin_46185214 Python

这篇文章主要介绍了PyQt5 QListView 高亮显示某一条目的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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

?
1
2
3
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() 来设置。

修改如下:

?
1
2
3
4
if msg == "cam1_label_1":
  self.showcamontopscreen(0)
  idx = self.devicelistmodel.index(0)
  self.device_listview.setcurrentindex(idx)

补充:pyqt5 qlistiew指定index显示

要求:

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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的范围,

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

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

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

原文链接:https://blog.csdn.net/weixin_46185214/article/details/105918320

延伸 · 阅读

精彩推荐