Qt c++ QMenuBar在滚动时的布局问题

Qt C++ QMenuBar in Layout problem when scrolling

本文关键字:布局 问题 滚动 c++ QMenuBar Qt      更新时间:2023-10-16

我是Qt的新手,我在QWidgets中的滚动条有困难。我有一个布局在一个小部件和布局包含一个QMenuBar。Scroll区域与小部件相关联。滚动条可以正常工作,但是当用户向下滚动时,菜单栏就消失了。有没有办法把菜单放在最上面?

如有任何帮助,不胜感激。

谢谢。

嗨@utdemir,

感谢您的快速回复。以下是您建议使用QMainWindow的代码片段。它产生了相同的结果。

MyWidget::MyWidget(QMainWindow *parent)
: QMainWindow(parent)
{
    main = new QWidget;       //Widget that contains the layout
    CreateMenu();
    scrollArea  = new QScrollArea;
    layout = new QVBoxLayout();
    //layout->setMenuBar(menuBar);
    this->setMenuBar(menuBar);
    this->resize(500,500);
    main->setLayout(layout);
    this->setCentralWidget(main);
    scrollArea->setWidget(this);
    scrollArea->setWidgetResizable(true);
    scrollArea->show();
    this->show();
}

找到了解决问题的方法。
创建一个包含菜单栏的QMainWindow。添加了一个包含布局的QWidget。滚动区域与QWidget相关联。主窗口的中心小部件被设置为滚动区域。

main->setLayout(layout);
this->setCentralWidget(scrollArea);
scrollArea->setWidget(main);
scrollArea->setWidgetResizable(true);
scrollArea->show();
this->show();

感谢您的帮助@utdemir