Python 对QListWidgetItem使用验证程序
我使用的是一个Python 对QListWidgetItem使用验证程序,python,qt,pyqt,Python,Qt,Pyqt,我使用的是一个QListWidget,它的项目可以通过双击来编辑(使用item.setFlags(item.flags()| Qt.ItemIsEditable))。我想检查用户输入的名称是否正确(我会使用isidentifier()检查它是否对应于正确的变量名,以及它是否不是带有iskeyword()的Python关键字)。我不想使用QListView,因为它需要对我的代码进行大量更改 以下是一个例子: from PyQt5.QtWidgets import QListWidget, QLis
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_())
这些项可以更改为任何值,即使是包含特殊字符的字符串或空字符串。请考虑。您可以尝试。我认为您不需要切换到QListView
。只需调用setItemDelegate
。另见