【发布时间】:2022-01-14 08:50:21
【问题描述】:
我在我的程序中创建了一个列表和一个重新排序(上/下)行的函数
所以我使用setCurrentRow() 在移动后更改选定的行
它运作良好,但选择未显示在列表中
我该怎么做
ps:我尝试了setSelectionRectVisible(True),但没有任何反应。
import sys
from PyQt5.QtWidgets import *
class MainWindow(QWidget):
def __init__(self,parent=None):
super(MainWindow, self).__init__()
self.my_list = QListWidget(self)
self.my_list.setGeometry(5,5,90,100)
QListWidgetItem("1",self.my_list)
QListWidgetItem("2",self.my_list)
QListWidgetItem("3",self.my_list)
QListWidgetItem("4",self.my_list)
self.upButton = QPushButton("Up",self)
self.upButton.move(100,10)
self.upButton.clicked.connect(self.up)
self.downButton = QPushButton("Down",self)
self.downButton.move(100,30)
self.downButton.clicked.connect(self.down)
def up(self, event):
w=self.my_list.currentRow()
if w > 0:
self.my_list.insertItem(w-1, self.my_list.currentItem().text())
self.my_list.takeItem(w+1)
self.my_list.setCurrentRow(w-1)
# self.my_list.setSelectionRectVisible(True)
def down(self, event):
w = self.my_list.currentRow()
if w < self.my_list.count()-1:
self.my_list.insertItem(w+2, self.my_list.currentItem().text())
self.my_list.takeItem(w)
self.my_list.setCurrentRow(w+1)
if __name__ == "__main__":
app = QApplication(sys.argv)
root = MainWindow()
root.show()
sys.exit(app.exec_())
我正在创建这个简单的示例来展示它,它适用于默认背景(灰色)
所以我的问题是找到突出显示的属性的名称来设置它
【问题讨论】:
标签: python pyqt5 qlistwidget