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

可以使用 DSpinner 类快速创建用于指示加载中状态的旋转等待图标动画控件. 更多...

类 Dtk::Widget::DSpinner 继承关系图:

Public 槽

void start ()
 DSpinner 开始旋转动画
 
void stop ()
 DSpinner 停止旋转动画
 
void setBackgroundColor (QColor color)
 设置控件的背景颜色
 

Public 成员函数

 DSpinner (QWidget *parent=0)
 创建一个 DSpinner 控件
 
 ~DSpinner ()
 析构函数
 
bool isPlaying () const
 DSpinner 是否正在播放旋转动画.
 

Protected 成员函数

void paintEvent (QPaintEvent *) Q_DECL_OVERRIDE
 
void changeEvent (QEvent *e) override
 

详细描述

可以使用 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 //使用DWidget命名空间
int main(int argc, char *argv[]) {
DApplication app(argc,argv);
//限制主程序窗口最小尺寸
w.setMinimumSize(300,200);
//新建一个窗体,容纳所有控件
DWidget *cw = new DWidget(&w);
//窗体使用水平布局
QHBoxLayout *layout = new QHBoxLayout(cw);
//设置对齐方式,向右对齐,防止spinner被隐藏后按钮乱跳
layout->setAlignment(Qt::AlignRight);
//添加一个DSpinner
DSpinner *spinner = new DSpinner();
spinner->setFixedSize(36,36);
//添加一个button,控制DSpinner
DPushButton *btn = new DPushButton("开始加载");
btn->setFixedWidth(100);
//将DSpinner和DPushButton添加到布局中
layout->addWidget(spinner);
layout->addWidget(btn);
//刚开始没有加载,隐藏spinner
spinner->hide();
//实现按钮被按下后的操作
QObject::connect(btn, &DPushButton::clicked, [&btn, &spinner](){
//如果spinner正在播放动画,按下按钮后切换到非加载模式,停止动画并隐藏spinner,反之开始动画并显示spinner
if(spinner->isPlaying()){
spinner->stop();
spinner->hide();
btn->setText("开始加载");
}
else {
spinner->show();
spinner->start();
btn->setText("取消加载");
}
});
//将cw放置在主窗口中
w.setCentralWidget(cw);
w.show();
return app.exec();
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20
可以使用 DSpinner 类快速创建用于指示加载中状态的旋转等待图标动画控件.
Definition dspinner.h:19
bool isPlaying() const
DSpinner 是否正在播放旋转动画.
Definition dspinner.cpp:85

程序运行效果

运行效果图

构造及析构函数说明

◆ DSpinner()

Dtk::Widget::DSpinner::DSpinner ( QWidget *  parent = 0)
explicit

创建一个 DSpinner 控件

参数
parent父控件

成员函数说明

◆ isPlaying()

bool Dtk::Widget::DSpinner::isPlaying ( ) const

DSpinner 是否正在播放旋转动画.

返回
正在播放返回 true,否则返回 false.

◆ setBackgroundColor

void Dtk::Widget::DSpinner::setBackgroundColor ( QColor  color)
slot

设置控件的背景颜色

参数
color需要设置的背景颜色

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