【发布时间】:2018-10-03 00:38:57
【问题描述】:
我正在尝试创建一个从 QScrollArea 派生的类,因此我可以在表单编辑器中将 ScrollArea 提升为我的自定义类。 我有这个代码:
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include "CustomScrollArea.h"
CustomScrollArea::CustomScrollArea(QWidget *parent) :
QScrollArea (parent)
{
setWidgetResizable( true );
QWidget *widget = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
widget->setLayout( layout );
setWidget( widget );
for (int i = 0; i < 10; i++)
{
QPushButton *button = new QPushButton( QString( "%1" ).arg( i ) );
layout->addWidget( button );
}
}
我遇到的问题是按钮没有那样显示...
.ui 内容:
...
<widget class="QWidget" name="centralWidget">
<widget class="CustomScrollArea" name="scrollArea">
<property name="geometry">
<rect>
<x>40</x>
<y>40</y>
<width>221</width>
<height>201</height>
</rect>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>219</width>
<height>199</height>
...
【问题讨论】:
-
_ 按钮没有以这种方式显示_我无法找到证据。您的代码产生:i.stack.imgur.com/O4BeJ.png
-
@scopchanov 我已经重现了这个问题,只有在构造函数内部创建布局时才会发生,如果在此之后执行,则不会产生问题。
-
也许它只在mac上不起作用...我不知道...我得到一个空的滚动区域,
-
@АлександрЛитвицкий 在我看来这是一个错误,在 linux 中我也有这个问题。
-
@scopchanov 问题是当他们推广它时,请阅读我的回答。
标签: c++ qt qt5 qscrollarea