setMouseTracking
bool mouseTracking
这个属性保存的是窗口部件跟踪鼠标是否生效。
如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件才会接收鼠标移动事件。
如果鼠标跟踪生效,如果没有按键被按下,这个窗口部件也会接收鼠标移动事件。
也可以参考mouseMoveEvent ()和QApplication::setGlobalMouseTracking ()。
通过setMouseTracking ()设置属性值并且通过hasMouseTracking ()来获得属性值。
调用这个函数后,如想使mouseMoveEvent有效,也就是在鼠标在区域内移动就会触发,而非鼠标按键按下时才触发,注意只能是QWidget,如果是QMainwindow,则无效。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
QTableWidget与QTableView的区别
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。QTableWidget继承自QTableView。QSqlTableModel能与QTableView绑定,但不能于QTableWidget绑定。
QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,整个表格都需要用逐个单元格构建起来。
具体区别表格
区别点 |
QTableView |
QTableWidget |
继承关系 |
|
QTableWidget继承自QTableView |
使用数据模型setModel |
可以使用setModel设置数据模型 |
setModel是私有函数,不能使用该函数设置数据模型 |
显示复选框setCheckState |
没有函数实现复选框 |
QTableWidgetItem类中的setCheckState(Qt::Checked);可以设置复选框 |
与QSqlTableModel绑定 |
QTableView能与QSqlTableModel绑定 |
QtableWidget不能与QSqlTableModel绑定 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------