【发布时间】:2017-01-22 17:46:26
【问题描述】:
我有一个表格小部件。我不知道如何更改每个单元格中的输入格式。目前我希望它只接受十六进制值。我怎么做?我正在使用 Qt Designer 4.8.6 和 PyQt4
感谢任何帮助。
【问题讨论】:
我有一个表格小部件。我不知道如何更改每个单元格中的输入格式。目前我希望它只接受十六进制值。我怎么做?我正在使用 Qt Designer 4.8.6 和 PyQt4
感谢任何帮助。
【问题讨论】:
这可以使用 custom Delegate 和 QRegexValidator 来完成:
您必须创建一个自定义委托,并在其中覆盖该方法:
QWidget createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)
所以它会返回一个 QLineEdit,它有一个 QRegexValidator,包含正确的模式。
要在 QLineEdit 上设置正则表达式验证器,请使用:
setValidator (self, QValidator)
最后,在您的表上设置自定义委托:
setItemDelegate (self, QAbstractItemDelegate delegate)
【讨论】: