DtkWidget
DTK Widget module
载入中...
搜索中...
未找到
Dtk::Widget::DBoxWidget类 参考

DBoxWidget提供了一个自适应子控件大小的Widget 更多...

类 Dtk::Widget::DBoxWidget 继承关系图:
Dtk::Widget::DHBoxWidget Dtk::Widget::DVBoxWidget

Public 槽

void setDirection (QBoxLayout::Direction direction)
 设置 QBoxLayout 当前的方向
 

信号

void sizeChanged (QSize size)
 DBoxWidget 大小发生变化时的信号
 
void directionChanged (QBoxLayout::Direction direction)
 DBoxWidget 方向发生变化时的信号
 

Public 成员函数

 DBoxWidget (QBoxLayout::Direction direction, QWidget *parent=0)
 DBoxWidget的构造函数
 
QBoxLayout::Direction direction () const
 这个属性返回当前 QBoxLayout 使用的方向
 
QBoxLayout * layout () const
 这个属性会返回当前使用的布局对象
 
void addWidget (QWidget *widget)
 调用QBoxLayout的addWidget方法将QWidget添加到布局中
 
QSize sizeHint () const Q_DECL_OVERRIDE
 DBoxWidget::sizeHint 重写 QWidget::sizeHint().
 

Protected 成员函数

virtual void updateSize (const QSize &size)
 当方向是 QBoxLayout::TopToBottom 或者 QBoxLayout::BottomToTop 时设置大小
 
bool event (QEvent *ee) Q_DECL_OVERRIDE
 

属性

QBoxLayout::Direction direction
 当前QBoxLayout使用的方向的属性
 

详细描述

DBoxWidget提供了一个自适应子控件大小的Widget

在Qt编程中,使用QBoxLayout设置控件是很常见的,DBoxWidget提供了方便的封装,会根据需要的大小自动 设置DBoxWidget的宽高。

下面提供DBoxWidget的例子:

项目目录结构在同一目录下

CMakeLists.txt

cmake_minimum_required(VERSION 3.1.0) # 指定cmake最低版本
project(example VERSION 1.0.0 LANGUAGES CXX) # 指定项目名称, 版本, 语言 cxx就是c++
set(CMAKE_CXX_STANDARD 11) # 指定c++标准
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 指定c++标准要求,至少为11以上
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 支持 clangd
if (CMAKE_VERSION VERSION_LESS "3.7.0") # 如果cmake版本小于3.7.0
set(CMAKE_INCLUDE_CURRENT_DIR ON) # 设置包含当前目录
endif()
find_package(Qt5 REQUIRED COMPONENTS Widgets) # 寻找Qt5组件Widgets
find_package(Dtk REQUIRED COMPONENTS Widget) # 寻找Dtk组件Widget
add_executable(${PROJECT_NAME} # 生成可执行文件
main.cpp
)
target_link_libraries(${PROJECT_NAME} PRIVATE # 添加需要链接的共享库
Qt5::Widgets
${DtkWidget_LIBRARIES}
)

main.cpp

#include <DApplication>
#include <DWidgetUtil>
#include <DMainWindow>
#include <QBoxLayout>
#include <dboxwidget.h>
#include <DLineEdit>
#include <DPushButton>
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
DApplication a(argc, argv);
// 设置水平方向 从左到右排列
QBoxLayout::Direction direction = QBoxLayout::LeftToRight;
// 创建DBoxWidget对象
DBoxWidget box(direction, &win);
// 添加一个DLineEdit控件,和一个按钮,可以看到控件水平放置
box.addWidget(new DLineEdit());
box.addWidget(new DPushButton("按钮"));
// 设置外边距为30px
box.layout()->setMargin(30);
// widget放入主窗口
win.setCentralWidget(&box);
win.resize(300,200);
win.show();
// 移动窗口到屏幕中心
Dtk::Widget::moveToCenter(&win);
return a.exec();
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
DBoxWidget提供了一个自适应子控件大小的Widget
Definition dboxwidget.h:19
QBoxLayout::Direction direction
当前QBoxLayout使用的方向的属性
Definition dboxwidget.h:22
DLineEdit一个聚合 QLineEdit 的输入框.
Definition dlineedit.h:20
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20

编译运行

cmake -Bbuild
cmake --build build
./build/example

结果如下图

参见
DHBoxWidget
DVBoxWidget

构造及析构函数说明

◆ DBoxWidget()

Dtk::Widget::DBoxWidget::DBoxWidget ( QBoxLayout::Direction  direction,
QWidget *  parent = 0 
)
explicit

DBoxWidget的构造函数

参数
direction是设置内部QBoxLayout使用的方向
parent传递给QFrame的构造函数

成员函数说明

◆ addWidget()

void Dtk::Widget::DBoxWidget::addWidget ( QWidget *  widget)

调用QBoxLayout的addWidget方法将QWidget添加到布局中

参数
widget要添加的QWidget对象

◆ direction()

QBoxLayout::Direction DBoxWidget::direction ( ) const

这个属性返回当前 QBoxLayout 使用的方向

返回
QBoxLayout::Direction 当前的方向
参见
属性 direction

◆ event()

bool Dtk::Widget::DBoxWidget::event ( QEvent *  ee)
protected

\reimp

◆ layout()

QBoxLayout * Dtk::Widget::DBoxWidget::layout ( ) const

这个属性会返回当前使用的布局对象

这个属性可以用来获取内部布局,所以你可以设置布局上的一些额外属性来匹配自定义需求。

返回
返回 QBoxLayout 类型的指针

◆ setDirection

void Dtk::Widget::DBoxWidget::setDirection ( QBoxLayout::Direction  direction)
slot

设置 QBoxLayout 当前的方向

参数
direction方向
参见
属性 direction

◆ sizeHint()

QSize Dtk::Widget::DBoxWidget::sizeHint ( ) const

DBoxWidget::sizeHint 重写 QWidget::sizeHint().

返回
该控件的推荐大小.

◆ updateSize()

void Dtk::Widget::DBoxWidget::updateSize ( const QSize &  size)
protectedvirtual

当方向是 QBoxLayout::TopToBottom 或者 QBoxLayout::BottomToTop 时设置大小

固定高度将使用传入的高度,并设置最小宽度为传入的宽度。否则将使用传入的宽度当做固定宽度,高度为最小高度。

参数
size传入的大小

属性说明

◆ direction

QBoxLayout::Direction Dtk::Widget::DBoxWidget::direction
readwrite

当前QBoxLayout使用的方向的属性

参见
read方法 direction
write方法 setDirection

该类的文档由以下文件生成: