小编Dus*_*ich的帖子

Qt5 QWidget:悬停效果延迟

我试图用以下CSS 创建任何类型的:hover效果QWidget:

QWidget.mis--MyButton {
    width: 300px;
    height: 300px;
    background:  white;
    /*cursor: pointer;*/
    font-family: Calibri;
    border-radius: 10px;
    border: 2px solid rgb(218, 218, 218); /*#007FEB;*/

    padding: 1px;
    margin-top: 2px;
}

QWidget.mis--MyButton:hover 
{
    border: 2px solid #007FEB; /*#007FEB;*/
}
Run Code Online (Sandbox Code Playgroud)

但是,从鼠标进入小部件到效果出现的时间有2-3秒的轻微延迟.

这是发生的事情的截屏视频:

https://youtu.be/aNfEKabut-A

对于绘画我使用以下代码:

void MyButton::paintEvent(QPaintEvent * event)
{ 
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);   
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);

}
Run Code Online (Sandbox Code Playgroud)

即使我试图摆脱CSS,即不加载CSS,只是尝试产生任何效果并使用Qt的风格,例如,这样:

style()->drawPrimitive(QStyle::PE_PanelButtonBevel, &opt, &p, this);
Run Code Online (Sandbox Code Playgroud)

并且只是关闭CSS,我仍然得到同样的延迟.

这是一个相同效果的截屏视频,没有加载CSS并QStyle::PE_PanelButtonBevel选择了paintEvent以下选项:

https://youtu.be/kT10zdepsGk

计算机相当强大,Ryzen 7在Windows 10上,而我使用的是VC++ 2017,所以它不应该与之类似.

如果您需要更多代码,请告诉我们.

谢谢!

css c++ qt visual-c++ qt5

5
推荐指数
1
解决办法
378
查看次数

标签 统计

c++ ×1

css ×1

qt ×1

qt5 ×1

visual-c++ ×1