簡體   English   中英

Qt顯示/隱藏小部件不流暢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM