[英]Qt Show/Hide Widget not smooth
我遇到以下問題:
當我雙擊其中一個QGLWidget
,我要做的是將單擊的窗口小部件擴展為完整的父窗口小部件大小,如果再次雙擊該完整大小的窗口小部件,它將恢復為顯示所有窗口小部件,因此代碼為像這樣:
display_widgets_
存儲所有創建的QGLWidget
。
bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{
if(event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent* mouseEv = (QMouseEvent*)event;
if(mouseEv->buttons() == Qt::LeftButton)
{
display_widgets_[0]->parentWidget()->setUpdatesEnabled(false);
if(!showAll_){
for(auto& it:display_widgets_)
{
it->show();
}
showAll_ = true;
}else{
for(auto& it: display_widgets_)
{
if(watched == it)
{
selected_widget_ = it;
showAll_ = false;
selected_widget_->show();
}else
{
it->hide();
}
}
}
display_widgets_[0]->parentWidget()->setUpdatesEnabled(true);
}
return true;
}
return QMainWindow::eventFilter(watched, event);
}
但是 ,在Double Click
的過程中,我得到了以下效果:
最終它將調整為正常大小,但是我總是得到這個難看的變換。
更多信息:我將QGLWidget
子類化以創建自己的QGLWidget
以便可以將每個QGLWidget
上下文移動到線程中以進行快速呈現。
經過幾次試驗和錯誤,我將QGLWidget
更改為QOpenGLWidget
,這種丑陋的效果消失了。 我的Qt版本是5.8-msvc2015。 僅在使用QGLWidget
時會發生此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.