您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在PyQt5中使用QListView實現一個代碼高亮功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
使用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的范圍,
看完上述內容,你們對如何在PyQt5中使用QListView實現一個代碼高亮功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。