Kra*_*oid 2 c++ qt qtablewidget
有没有办法禁止QTableWidget中除数字(0-9)之外的任何字符?对于QLineEdits,我使用的是RegEx验证器,但这不适用于QTableWidgets.我想把QLineEdits作为CellWidgets插入到表中,但后来我不得不在我的代码中重写了大量的函数.那么,还有其他(直接)方法吗?
我建议使用表格小部件的项目委托来处理可能的用户输入.以下是简化的解决方案.
项目委托的实施:
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;
}
};
Run Code Online (Sandbox Code Playgroud)
使用自定义项委托实现简单表窗口小部件:
QTableWidget tw;
tw.setItemDelegate(new Delegate);
// Add table cells...
tw.show();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4458 次 |
最近记录: |