2
是否有任何方式禁止QTableWidget中除數字(0-9)以外的任何字符?對於QLineEdits,我使用RegEx驗證程序,但這不適用於QTableWidgets。我想在CellWidgets中插入QLineEdits到表中,但後來我不得不在代碼中重寫大量的函數。那麼,有沒有其他(直接)方法可以這樣做?QTableWidget:只允許使用數字
是否有任何方式禁止QTableWidget中除數字(0-9)以外的任何字符?對於QLineEdits,我使用RegEx驗證程序,但這不適用於QTableWidgets。我想在CellWidgets中插入QLineEdits到表中,但後來我不得不在代碼中重寫大量的函數。那麼,有沒有其他(直接)方法可以這樣做?QTableWidget:只允許使用數字
我會建議使用您的表小部件的項目委託來處理可能的用戶輸入。以下是簡化的解決方案。
項目委託的實現:
QTableWidget tw;
tw.setItemDelegate(new Delegate);
// Add table cells...
tw.show();
:
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;
}
};
與自定義項目委託的簡單表格控件的實現