您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何在PyQt5中使用QListView實(shí)現(xiàn)一個代碼高亮功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
使用setCurrentIndex(int) 來設(shè)置
if msg == "CAM1_Label_1": self.showCamOnTopScreen(0) self.device_listView.setCurrentIndex(0)
結(jié)果報(bào)錯,提示
“setCurrentIndex(self, QModelIndex): argument 1 has unexpected type 'int'”
后來發(fā)現(xiàn)此處不能直接用int , 而應(yīng)該跟用初始化時(shí)的model.index() 來設(shè)置。
if msg == "CAM1_Label_1": self.showCamOnTopScreen(0) idx = self.devicelistModel.index(0) self.device_listView.setCurrentIndex(idx)
補(bǔ)充:pyqt5 Qlistiew指定index顯示
根據(jù)實(shí)驗(yàn)步驟, 指定顯示當(dāng)前的流程在哪個步驟。記錄一下
# 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的參數(shù) ,即可指定當(dāng)前的那個索引被選中 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", "選擇項(xiàng)是:%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的范圍,
看完上述內(nèi)容,你們對如何在PyQt5中使用QListView實(shí)現(xiàn)一個代碼高亮功能有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。