当你在Form里面放一个QWidget和一个QTableWidget时,如果你去点击QWidget里面控件,那么焦点是在表格外面QWidget里的控件上,这时表格选中的行底色变灰,表格是不会刷新界面的,因为QTableWidget没有paint事件过来,所有表格中的代理控件其paint函数是不会调用的,在代理控件上绘制的图是不会刷新的,这时候使用代码去刷一下表格,最好的方式是以下代码:
ui->tableWidget->selectRow(m_currRow);
ui->tableWidget->setFocus();//立即刷新,paint事件
这样不会多余的操作也不会更改表格内容,完美刷新表格中所有代理控件一次,只要控件有paint事件的都会刷新界面