对QListWidgetItem使用验证器

时间:2017-06-16 13:49:08

标签: python qt pyqt

我正在使用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_())

项目可以更改为任何值,甚至是包含特殊字符或空字符串的字符串。

0 个答案:

没有答案