因此,我使用QWindow
将自定义createWindowContainer
打包在窗口小部件中。默认情况下,这会给出无效的大小提示(-1),因为QWindow不在布局中。此外,QWindow
没有大小提示。
如何使用sizeHint()
中的函数指定render_surface
?
window_container = QWidget::createWindowContainer(render_surface);
auto hint = window_container->sizeHint(); // how do I specify this?
std::cout << hint.width() << std::endl; //invalid
答案 0 :(得分:1)
将virtual const QSize& sizeHint() const
方法覆盖到包装器,该方法只返回其包装窗口的QWindow::size()。
答案 1 :(得分:0)
我在错误跟踪器上发布了一些内容,目前的方法是使用第二个小部件来实现&#34; shadow&#34;大小。
代码类似于:
在父母的构造函数
中auto window_container = QWidget::createWindowContainer(render_surface);
window_container->setLayout(new QGridLayout());
fml = new PlaceHolderWidget;
window_container->layout()->addWidget(fml);
在父母的调整大小事件
中void RenderContainer::resizeEvent(QResizeEvent *event)
{
auto frame_size = render_surface->img_size;
if (frame_size.n() > 0)
{
...
fml->setSizeHint(QSize(predicted_width, predicted_height));
}
QWidget::resizeEvent(event);
}
PlaceHolderWidget
覆盖sizeHint()
的位置。
https://bugreports.qt.io/browse/QTBUG-57693