引言
鼠标在窗口的四个边和四个角后会显示不同的样式。在构造函数中设置了鼠标追踪,但是鼠标依然需要点击后才能改变样式,究其原因是只设置了父窗口的鼠标追踪,没有设置子控件的追踪,当然是子控件与父窗口的鼠标追踪有关才需要设置子控件的鼠标追踪。
示例
下面是项目中的ui文件的结构图:
该项目实现拉伸该SignalSourceListWidget无标题栏窗口各个边角,以及拖动,鼠标移动到不同的边后会有不同的形状,这里在构造函数中已经设置了属性,鼠标追踪,但是还是在移动时没有实现鼠标样式的切换。
setWindowFlag(Qt::FramelessWindowHint);
setMouseTracking(true);
于是添加了子控件的鼠标追踪后,便可以实现鼠标追踪了。
ui->frame->setMouseTracking(true);
可以看到frame子控件在父控件SignalSourceListWidget里的栅格布局下,这样在拉伸父窗口SignalSourceListWidget时,子控件frame也会被拉伸。故而也许设置子控件的鼠标追踪才能实现鼠标的追踪。