请教一个QTableWidget的问题
我想要实现的是:在双击单元格的时候,对单元格输入的内容进行限制,比如只能输入16位正整数。
这个要怎么实现呢?在线等......先谢了!
[解决办法]
我没做过,但是我有些方法可以你参考下,或许有帮助:
1:当单元格的内容变化的时候,然后调用槽函数去过滤下,具体信号如下:
Signals
voidcellActivated ( int row, int column )
voidcellChanged ( int row, int column )
voidcellClicked ( int row, int column )
voidcellDoubleClicked ( int row, int column )
voidcellEntered ( int row, int column )
voidcellPressed ( int row, int column )
voidcurrentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn )
voidcurrentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous )
voiditemActivated ( QTableWidgetItem * item )
voiditemChanged ( QTableWidgetItem * item )
voiditemClicked ( QTableWidgetItem * item )
voiditemDoubleClicked ( QTableWidgetItem * item )
voiditemEntered ( QTableWidgetItem * item )
voiditemPressed ( QTableWidgetItem * item )
voiditemSelectionChanged ()
槽函数你可以自己去写,然后跟信号绑定起来,这么多信号你可以试下,因为我也没写过哎;
2:可以采用QSortFilterProxyModel这个类,用代理的模式去过滤数据,然后再显示.在Qt Assistant里输入:Custom Sort/Filter Model可以找到这个讲解.
[解决办法]
你每输入一个字符 都会产生一个事件
你可以抽取当前的事件出来 判断用户当前的输入是否为你要求的值
如果不是 可以用toolTip提示
[解决办法]
可以通过委托实现
百度 QItemDelegate QTableWidget
[解决办法]
对LineEdit的限制我用的是:
QRegExp reg("[0-9]{0,9}");//[0-9]是限制,也可以是[a-z],{0,9}是0-9位,也就是说0-9位只能输入0-9的数字
ui->lineEdit->setValidator(new QRegExpValidator(reg,this));//设置限制
你看看QTableWidget里的Index能不能设置这个
[解决办法]
设置一个itemw eidt idget
然后这个widget 设置下你要的限制。