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 <DLineEdit>
#include <DPushButton>
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
QBoxLayout::Direction
direction = QBoxLayout::LeftToRight;
box.addWidget(new DPushButton("按钮"));
box.layout()->setMargin(30);
win.setCentralWidget(&box);
win.resize(300,200);
win.show();
Dtk::Widget::moveToCenter(&win);
return a.exec();
}
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20
编译运行
cmake -Bbuild
cmake --build build
./build/example
结果如下图
- 参见
- DHBoxWidget
-
DVBoxWidget