PyQt5,QComboBox控件,QListWidet控件(或者QListView控件)。
ComboBox控制ListView显示代码(QListWidet控件):
def list_show(self):
flag = self.ComboBox.currentText()
if flag == 'flag1':
self.qList = list(self.dict1.keys())
if flag == 'flag2':
self.qList = list(self.dict2.keys())
if flag == 'flag2':
self.qList = list(self.dict3.keys())
self.listView.clear()
self.listView.addItems(self.qList)
ListView选择上一个、下一个、搜索选项:
def pre1(self):
try:
selected = self.listView.currentIndex()
row = selected.row()
if row >= 1:
self.listView.setCurrentRow(row - 1)
except Exception as e:
QMessageBox.about(self, '提示', str(e))
def next1(self):
try:
selected = self.listView.currentIndex()
row = selected.row()
if row < len(self.qList) - 1:
self.listView.setCurrentRow(row + 1)
except Exception as e:
QMessageBox.about(self, '提示', str(e))
def search1(self):
try:
key = str(self.search.text()).upper().strip()
items = self.listView.findItems(key, Qt.MatchContains)
if items and len(items) > 0:
self.listView.setCurrentItem(items[0])
except Exception as e:
QMessageBox.about(self, '提示', str(e))
若ListView选择ListView控件类型:
则初始化中:
self.slm = QStringListModel()
self.listView.setModel(self.slm)
ComboBox控制ListView显示代码中(ListView控件):
def list_show(self):
flag = self.ComboBox.currentText()
if flag == 'flag1':
self.qList = list(self.dict1.keys())
if flag == 'flag2':
self.qList = list(self.dict2.keys())
if flag == 'flag3':
self.qList = list(self.dict3.keys())
self.slm.setStringList(self.qList)
ListView选择上一个、下一个、搜索选项(ListView控件):
# pre1和next1同上
def search1(self):
key= str(self.search.text())
row = self.qList.index(key)
modelindex = self.slm.index(row)
self.listView.setCurrentIndex(modelindex)
若有错误,请多多指教!