2017-09-11 14 views
0

をスムーズありませんフルサイズのウィジェットは再びダブルクリイクされ、すべてのウィジェットを表示するように復元されるので、コードは次のようになります。Qtの表示/非表示ウィジェットは、私は次の問題が発生した

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の過程で、私はこの効果ました:

enter image description here

をそして、それは最終的には通常のサイズにリサイズしますが、私はいつもこの醜い変換を得ました。

詳細情報: 私は、高速なレンダリングへのスレッドに各QGLWidgetコンテキストを移動できるようにQGLWidget自分自身を作成するためにQGLWidgetをサブクラス化。いくつかの試行錯誤の後

enter image description here

答えて

0

、私はQOpenGLWidgetQGLWidgetを変更し、この醜い効果は消失しました。私のQtバージョンは5.8-msvc2015です。この問題は、QGLWidgetを使用している場合にのみ発生します。

関連する問題