我正在使用QListWidget
,其项目可以通过双击(使用item.setFlags(item.flags() | Qt.ItemIsEditable)
)进行编辑。我想检查用户输入的名称是否正确(我会检查它是否与使用isidentifier()
的正确变量名对应,如果它不是带有iskeyword()
的Python关键字)。我宁愿不使用QListView
,因为我的代码需要进行大量更改。
以下是一个例子:
from PyQt5.QtWidgets import QListWidget, QListWidgetItem
from PyQt5.QtCore import Qt
class MyListWidget(QListWidget):
def __init__(self):
super().__init__()
item1 = QListWidgetItem('item 1')
item2 = QListWidgetItem('item 2')
item1.setFlags(item1.flags() | Qt.ItemIsEditable)
item2.setFlags(item2.flags() | Qt.ItemIsEditable)
self.addItem(item1)
self.addItem(item2)
self.show()
if __name__ == '__main__':
from PyQt5.QtWidgets import QApplication
import sys
app = QApplication(sys.argv)
win = MyListWidget()
sys.exit(app.exec_())
项目可以更改为任何值,甚至是包含特殊字符或空字符串的字符串。