我想要实现的是:在双击单元格的时候,对单元格输入的内容进行限制,比如只能输入16位正整数。
这个要怎么实现呢?在线等......先谢了!
------解决方案--------------------
我没做过,但是我有些方法可以你参考下,或许有帮助:
1:当单元格的内容变化的时候,然后调用槽函数去过滤下,具体信号如下:
Signals
void cellActivated ( int row, int column )
void cellChanged ( int row, int column )
void cellClicked ( int row, int column )
void cellDoubleClicked ( int row, int column )
void cellEntered ( int row, int column )
void cellPressed ( int row, int column )
void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn )
void currentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous )
void itemActivated ( QTableWidgetItem * item )
void itemChanged ( QTableWidgetItem * item )
void itemClicked ( QTableWidgetItem * item )
void itemDoubleClicked ( QTableWidgetItem * item )
void itemEntered ( QTableWidgetItem * item )
void itemPressed ( QTableWidgetItem * item )
void itemSelectionChanged ()
槽函数你可以自己去写,然后跟信号绑定起来,这么多信号你可以试下,因为我也没写过哎;
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 设置下你要的限制。