可以使用 DSpinner 类快速创建用于指示加载中状态的旋转等待图标动画控件.
DSpinner 提供了一个用于指示加载中状态的旋转等待图标动画控件。在创建图标后,使用 start() 即可开始图标旋转的动画。
下面通过一个简单的实例来演示DSpinner
CMakeLists.txt
配置 CMakeLists.txt 文件
cmake_minimum_required(VERSION 3.1.0) # 指定cmake最低版本
project(example1 VERSION 1.0.0 LANGUAGES CXX) # 指定项目名称, 版本, 语言 cxx就是c++
set(CMAKE_CXX_STANDARD 11) # 指定c++标准
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 指定c++标准要求,至少为11以上
set(target example1) # 指定目标名称
set(CMAKE_AUTOMOC ON) # support qt moc # 支持qt moc
set(CMAKE_AUTORCC ON) # support qt resource file # 支持qt资源文件
set(CMAKE_AUTOUIC ON) # support qt ui file # 支持qt ui文件(非必须)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # support clangd 支持 clangd
if (CMAKE_VERSION VERSION_LESS "3.7.0") # 如果cmake版本小于3.7.0
set(CMAKE_INCLUDE_CURRENT_DIR ON) # 设置包含当前目录
endif()
find_package(Qt5 COMPONENTS Widgets REQUIRED) # 寻找Qt5组件Widgets
find_package(Qt5 COMPONENTS Gui REQUIRED) # 寻找Qt5组件Gui
find_package(Dtk COMPONENTS Widget REQUIRED) # 寻找Dtk组件Widget
find_package(Dtk COMPONENTS Core REQUIRED) # 寻找Dtk组件Core
find_package(Dtk COMPONENTS Gui) # 寻找Dtk组件Gui
add_executable(example1 # 添加可执行文件
main.cpp
)
target_link_libraries(example1 PRIVATE
Qt5::Widgets
Qt5::Gui
${DtkGui_LIBRARIES}
${DtkCore_LIBRARIES}
${DtkWidget_LIBRARIES}
) # 链接库
main.cpp
#include <DApplication>
#include <DMainWindow>
#include <DPushButton>
#include <DSpinner>
#include <QLayout>
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[]) {
w.setMinimumSize(300,200);
DWidget *cw = new DWidget(&w);
QHBoxLayout *layout = new QHBoxLayout(cw);
layout->setAlignment(Qt::AlignRight);
spinner->setFixedSize(36,36);
DPushButton *btn = new DPushButton("开始加载");
btn->setFixedWidth(100);
layout->addWidget(spinner);
layout->addWidget(btn);
spinner->hide();
QObject::connect(btn, &DPushButton::clicked, [&btn, &spinner](){
spinner->stop();
spinner->hide();
btn->setText("开始加载");
}
else {
spinner->show();
spinner->start();
btn->setText("取消加载");
}
});
w.setCentralWidget(cw);
w.show();
return app.exec();
}
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20
程序运行效果
运行效果图