为什么QTabWidget无法在resizeEvent

时间:2018-12-17 12:40:21

标签: c++

我是Qt的新手,我尝试将工具栏移到tabBar旁边,但是工具栏没有移到正确的位置。

Demo Gif Here

我正在像这样使用resizeEvent:

void Example5::CustomTabWidget::resizeEvent(QResizeEvent *event)
{
    QTabWidget::resizeEvent(event);
    qDebug() << "CustomTabWidget::resizeEvent";
    updateStyleSheet();    
}

void Example5::CustomTabWidget::updateStyleSheet()
{
    if(count() == 0){return;}
    else
    {
        //...set tab stylesheet and tabBar.MaximumWidth
        toolbar->move(tabBar()->width(),0);
    }
}

问题:
作为演示,工具栏开始移动到{100,0},即 不是正确的位置,因为第一个resizeEvent的tabBar宽度错误,为什么tabBar不会更新大小?

有关更多信息:
1.当用户拉伸窗口时,工具栏将移至正确位置。
2.updateGeometry()不起作用
3。Complete code here
4. qDebug输出:

  

CustomTabWidget :: tabInserted tabwidget:QRect(0,0 325x30)tabBar:   QRect(0,0 100x30)

     

CustomTabWidget :: tabInserted tabwidget:QRect(0,0 325x30)tabBar:   QRect(0,0 100x30)

     

CustomTabWidget :: tabInserted tabwidget:QRect(0,0 325x30)tabBar:   QRect(0,0 100x30)

     

CustomTabWidget :: resizeEvent tabwidget:QRect(10,10 580x430)tabBar:   QRect(0,0 100x30)

这意味着tabBar在resizeEvent中第一次没有更新大小。

环境:
-QT Creator 4.7.2
-QT 5.11 msvc2015 32位
-Win7操作系统

0 个答案:

没有答案