gpt4 book ai didi

c++ - QMainWindow centralWidget 边框

转载 作者:可可西里 更新时间:2023-11-01 10:38:30 26 4
gpt4 key购买 nike

我有一个 QMainWindow,其中央小部件已设置为查看黑色场景的 QGraphicsView(用于测试目的)。请注意,在下面的代码中,我使用了派生自 QGraphicsView 的类,称为 CQtGlView,它仅重新实现了 resizeEvent 函数。

不管我是不是直接添加 View ,

CQtMainWindow::CQtMainWindow() {
m_glView = new CQtGlView();
setCentralWidget(m_glView);
}

或将其粘贴在虚拟小部件中边距为 0 的布局中,

CQtMainWindow::CQtMainWindow() {
m_glView = new CQtGlView();

QWidget* dummy = new QWidget();
QHBoxLayout* l = new QHBoxLayout();
l->setContentsMargins(0,0,0,0);
l->addWidget(m_glView);
dummy->setLayout(l);

setCentralWidget(dummy);
}

我在小部件周围出现了不需要的灰色边框。

下面的屏幕截图说明了问题,在我的场景和 windows aero 边框之间可见。

Border around centralWidget

如果我的应用程序不允许切换到全屏,这将不是问题。一旦屏幕的其余部分变黑,边框就非常明显。

这个区域可能代表中央小部件外部周围的 DockWidgetAreas。

除了不使用 QMainWindow 之外,我还能做些什么来解决这个问题? (由于我使用了菜单栏、工具栏和状态栏,因此不受欢迎。)

最佳答案

事实证明,QGraphicsView 派生自 QFrame,我认为它只是一个 QWidget。

这个问题的解决方案是调用 setFrameStyle (QFrame::NoFrame);在我的 QGraphicsView 子类的构造函数中。或者如果它不是一个子类,

m_glView->setFrameStyle(QFrame::NoFrame);

关于c++ - QMainWindow centralWidget 边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com