Utils: Add ScrollArea

Change-Id: I772f1d7dbc1c24d16ddcb54c3d66a89d9c238bf7
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2024-10-15 13:57:56 +02:00
parent e78a193513
commit ed609dbb45
4 changed files with 46 additions and 0 deletions

View File

@@ -15,6 +15,7 @@
#include <QGroupBox>
#include <QLabel>
#include <QPushButton>
#include <QScrollArea>
#include <QSize>
#include <QSpacerItem>
#include <QSpinBox>
@@ -967,6 +968,19 @@ void addToStack(Stack *stack, QWidget *inner)
access(stack)->addWidget(inner);
}
// ScrollArea
ScrollArea::ScrollArea(const Layout &inner)
{
ptr = new Implementation;
access(this)->setWidget(inner.emerge());
}
void ScrollArea::setLayout(const Layout &inner)
{
access(this)->setWidget(inner.emerge());
}
// Splitter
Splitter::Splitter(std::initializer_list<I> ps)

View File

@@ -29,6 +29,7 @@ class QLabel;
class QLayout;
class QObject;
class QPushButton;
class QScrollArea;
class QSize;
class QSpinBox;
class QSplitter;
@@ -360,6 +361,16 @@ public:
void setChildrenCollapsible(bool collapsible);
};
class QTCREATOR_UTILS_EXPORT ScrollArea : public Widget
{
public:
using Implementation = QScrollArea;
ScrollArea(const Layout &inner);
void setLayout(const Layout &inner);
};
class QTCREATOR_UTILS_EXPORT Stack : public Widget
{
public:

View File

@@ -517,6 +517,20 @@ void setupGuiModule()
sol::base_classes,
sol::bases<Widget, Object, Thing>());
gui.new_usertype<ScrollArea>(
"ScrollArea",
sol::call_constructor,
sol::factories(
[](const Layout &inner) {
auto item = std::make_unique<ScrollArea>(inner);
return item;
},
[guard](const sol::table &children) {
return constructWidgetType<ScrollArea>(children, guard);
}),
sol::base_classes,
sol::bases<Widget, Object, Thing>());
gui.new_usertype<TextEdit>(
"TextEdit",
sol::call_constructor,

View File

@@ -104,6 +104,13 @@ function gui.Form(children) end
---@class Stack : Widget
local stack = {}
---A ScrollArea widget.
---@class ScrollArea : Widget
---@param options WidgetOptions
---@return ScrollArea
function gui.ScrollArea(options) end
---@param options WidgetOptions
---@return Stack
function gui.Stack(options) end