QTableWidget:只允许数字
Posted
技术标签:
【中文标题】QTableWidget:只允许数字【英文标题】:QTableWidget: Only numbers permitted 【发布时间】:2014-03-28 09:21:49 【问题描述】:有什么方法可以在 QTableWidget 中禁止除数字 (0-9) 之外的任何字符?对于 QLineEdits,我使用的是 RegEx 验证器,但这不适用于 QTableWidgets。我曾想过将 QLineEdits 作为 CellWidgets 插入到表格中,但后来我不得不在我的代码中重写大量的函数。那么,有没有其他(直接)方法可以做到这一点?
【问题讨论】:
【参考方案1】:我建议为您的表格小部件使用项目委托来处理可能的用户输入。下面是一个简化的解决方案。
项目委托的实现:
class Delegate : public QItemDelegate
public:
QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
const QModelIndex & index) const
QLineEdit *lineEdit = new QLineEdit(parent);
// Set validator
QIntValidator *validator = new QIntValidator(0, 9, lineEdit);
lineEdit->setValidator(validator);
return lineEdit;
;
使用自定义项目委托实现简单表格小部件:
QTableWidget tw;
tw.setItemDelegate(new Delegate);
// Add table cells...
tw.show();
【讨论】:
以上是关于QTableWidget:只允许数字的主要内容,如果未能解决你的问题,请参考以下文章