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

DSlider一个聚合 QSlider 的滑块,DSlider提供了在滑块两侧设置图标函数,且设置的滑块更加美观 更多...

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

Public 类型

enum  SliderIcons { LeftIcon , RightIcon }
 

信号

void valueChanged (int value)
 信号会在 slider 的 value 值改变时被发送
 
void sliderPressed ()
 
void sliderMoved (int position)
 信号会在 slider 拖动时被发送
 
void sliderReleased ()
 信号会在 slider 被松开时被发送
 
void rangeChanged (int min, int max)
 信号会在 range 属性的值改变时被发送
 
void actionTriggered (int action)
 信号会在 action 被触发时被发送
 
void iconClicked (SliderIcons icon, bool checked)
 信号会在左右 iconbutton 被点击时被发送
 

Public 成员函数

 DSlider (Qt::Orientation orientation=Qt::Horizontal, QWidget *parent=nullptr)
 
Qt::Orientation orientation () const
 滑块方向
 
QSlider * slider ()
 返回 QSlider 对象,若 DSlider 不满足输入框的使用需求,请用此函数抛出的对象。
 
void setLeftIcon (const QIcon &left)
 设置滑块左侧图标.
 
void setRightIcon (const QIcon &right)
 设置滑块右图标.
 
void setIconSize (const QSize &size)
 设置滑块图标大小.
 
void setMinimum (int min)
 设置滑动范围的最小值.
 
int minimum () const
 滑动范围的最小值.
 
void setValue (int value)
 设置滑块当前值
 
int value () const
 DSlider::value
 
void setPageStep (int pageStep)
 设置页面单步的大小, 使用按键 PageUp 或者 PageDown 时,滑块滑动的单步大小。
 
int pageStep () const
 返回页面单步大小
 
void setMaximum (int max)
 设置滑动范围的最大值
 
int maximum () const
 返回滑动范围的最大值
 
void setLeftTicks (const QStringList &info)
 设置滑块左侧的刻度值.
 
void setRightTicks (const QStringList &info)
 设置滑块右侧的刻度值.
 
void setAboveTicks (const QStringList &info)
 
void setBelowTicks (const QStringList &info)
 设置滑块下方的刻度值
 
void setMarkPositions (QList< int > list)
 设置显示双边的刻度线(不显示刻度值).
 
void setMouseWheelEnabled (bool enabled)
 设置鼠标滚轮是否开启.
 
void setTipValue (const QString &value)
 用于创建气泡,气泡将跟随滑块移动.
 
QSlider::TickPosition tickPosition () const
 返回滑块的记号位置. 获取滑块刻度当前朝向。
 
QSize sizeHint () const override
 滑动条的大小策略.
 
void setHandleVisible (bool b)
 设置滑块是否显示.
 
bool handleVisible () const
 获取滑块是否显示的状态.
 
void setEnabledAcrossStyle (bool enabled)
 该函数用于设置滑槽是否禁用活动色填充已经滑过的滑槽.
 

Protected 成员函数

 DSlider (DSliderPrivate &q, QWidget *parent)
 
bool event (QEvent *event) override
 
bool eventFilter (QObject *watched, QEvent *event) override
 事件过滤器函数 @reimp 此函数目前仅处理了鼠标滚轮事件
 

详细描述

DSlider一个聚合 QSlider 的滑块,DSlider提供了在滑块两侧设置图标函数,且设置的滑块更加美观

DSlider一个聚合 QSlider 的滑块

DSlider 简单示例

通过使用 DSlider 实现一个简单需求,有一个按钮,需要通过一个DSlider滑块改变按钮的位置,滑块左滑按钮左移,滑块右滑按钮右移

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
dtkcore
dtkwidget
) # 链接库

main.cpp

#include <DApplication>
#include <DMainWindow>
#include <DSlider>
#include <DPushButton>
DWIDGET_USE_NAMESPACE //使用Dtk widget的命名空间
int main(int argc, char *argv[]){
DApplication app(argc, argv);
win.resize(800,500);
DSlider *dslider = new DSlider(Qt::Horizontal, &win); //新建一个水平方向的DSlider,父亲设置为主窗口
dslider->move(0,50);
dslider->setLeftIcon(win.style()->standardIcon(DStyle::SP_ArrowLeft)); //给滑块设置一个左图标,这里使用一个自带的左箭头
dslider->setRightIcon(win.style()->standardIcon(DStyle::SP_ArrowRight)); //给滑块设置一个右图标,这里使用自带的右箭头
dslider->setFixedWidth(400); //设置滑块的宽度
DPushButton *btn = new DPushButton("按钮", &win); //设置一个按钮
btn->move(0,100); //移动按钮的位置
//建立一个滑块与按钮的连接,滑块滑动发出信号,按钮接收,lambda函数中设置按钮的移动,并且打印出滑块的当前数值
QObject::connect(dslider, &DSlider::valueChanged, btn, [dslider, btn](){
int sliderValue = dslider->value();
qDebug() << sliderValue;
btn->move(sliderValue * 5, 100);
});
win.show();
return app.exec();
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20
DSlider一个聚合 QSlider 的滑块,DSlider提供了在滑块两侧设置图标函数,且设置的滑块更加美观
Definition dslider.h:20
void valueChanged(int value)
信号会在 slider 的 value 值改变时被发送
void setLeftIcon(const QIcon &left)
设置滑块左侧图标.
Definition dslider.cpp:170
int value() const
DSlider::value
Definition dslider.cpp:283
void setRightIcon(const QIcon &right)
设置滑块右图标.
Definition dslider.cpp:199

程序运行效果如下:

dslider_example

DSlider提供了在滑块两侧设置图标函数, DSlider提供了滑块的刻度及刻度标识

成员函数说明

◆ eventFilter()

bool DSlider::eventFilter ( QObject *  watched,
QEvent *  e 
)
overrideprotected

事件过滤器函数 @reimp 此函数目前仅处理了鼠标滚轮事件

参数
[in]watched被监听的子控件
[in]e对应的事件指针

◆ handleVisible()

bool DSlider::handleVisible ( ) const

获取滑块是否显示的状态.

返回
返回滑块是否显示的状态

◆ iconClicked

void DSlider::iconClicked ( SliderIcons  icon,
bool  checked 
)
signal

信号会在左右 iconbutton 被点击时被发送

参数
[in]icon表示按钮被点击的位置
[in]checked表示按钮是否被选中

DSlider的构造函数

参数
[in]orientation滑块方向
[in]parent参数被发送到 QWidget 构造函数
参见
Qt::Orientation

◆ maximum()

int DSlider::maximum ( ) const

返回滑动范围的最大值

返回
滑动范围的最大值
参见
QSlider::maximum

◆ minimum()

int DSlider::minimum ( ) const

滑动范围的最小值.

返回
返回滑动范围的最小值。
参见
QSlider::minimum() DSlider::setMinimum()

◆ orientation()

Qt::Orientation DSlider::orientation ( ) const

滑块方向

返回
返回当前滑块的方向。
参见
QSlider::orientation()

◆ pageStep()

int DSlider::pageStep ( ) const

返回页面单步大小

返回
页面单步大小的值。
参见
QSlider::pageStep() DSlider::setPageStep()

◆ rangeChanged

void DSlider::rangeChanged ( int  min,
int  max 
)
signal

信号会在 range 属性的值改变时被发送

参数
[in]min为 range 的最小值
[in]max为 range 的最大值

◆ setBelowTicks()

void DSlider::setBelowTicks ( const QStringList &  info)

设置滑块下方的刻度值

参数
[in]info刻度标识.
参见
DSlider::setRightTicks()

◆ setEnabledAcrossStyle()

void DSlider::setEnabledAcrossStyle ( bool  enabled)

该函数用于设置滑槽是否禁用活动色填充已经滑过的滑槽.

默认普通 DSlider 滑过的滑槽是活动色填充, 调用过 setXXXTicks 的 DSlider 则默认禁用活动色填充

参数
[in]enabledtrue 无活动色,可用于音量平衡等不需要显示滑过的,false 滑过的位置(如左侧) 是高亮色显示,如调节亮度等(默认)默认地,改属性为 false 。

◆ setHandleVisible()

void DSlider::setHandleVisible ( bool  b)

设置滑块是否显示.

参数
[in]b为 true 时滑块显示,否则滑块隐藏, 默认地, 滑块为显示状态

◆ setIconSize()

void DSlider::setIconSize ( const QSize &  size)

设置滑块图标大小.

参数
[in]size图标大小

◆ setLeftIcon()

void DSlider::setLeftIcon ( const QIcon &  left)

设置滑块左侧图标.

参数
[in]left左图标

◆ setLeftTicks()

void DSlider::setLeftTicks ( const QStringList &  info)

设置滑块左侧的刻度值.

根据 QStringList 数量,绘制刻度的个数,绘制刻度标识:滑块为水平,刻度在滑块上方;滑块为垂直,刻度在滑块左侧。

参数
[in]info刻度标识

◆ setMarkPositions()

void DSlider::setMarkPositions ( QList< int >  list)

设置显示双边的刻度线(不显示刻度值).

举例用途:比如调节音量的 DSlider ,需要在 value = 100 的地方标记一个刻度,而不需要显示其他的刻度值(并且实际音量值是可以超过 100 的) 其他:设置指定数值的刻度线(setMarkPositions)和设置刻度线+刻度值(setBelowTicks)是两个相互独立的,且互不干扰,若是同时使用,也会同时绘画各自的线; 另外两个的先后顺序也并没有关系.

参数
[in]list双边刻度线的值.

◆ setMaximum()

void DSlider::setMaximum ( int  max)

设置滑动范围的最大值

参数
[in]max滑动范围的最大值。
参见
QSlider::setMaximum() DSlider::maximum()

◆ setMinimum()

void DSlider::setMinimum ( int  min)

设置滑动范围的最小值.

参数
[in]min滑动最小值。
参见
QSlider::setMinimum() DSlider::minimum()

◆ setMouseWheelEnabled()

void DSlider::setMouseWheelEnabled ( bool  enabled)

设置鼠标滚轮是否开启.

开启鼠标滚轮后,用户可以通过鼠标滚轮来控制滑块的滑动。

参数
[in]enabled是否开启鼠标滚轮

◆ setPageStep()

void DSlider::setPageStep ( int  pageStep)

设置页面单步的大小, 使用按键 PageUp 或者 PageDown 时,滑块滑动的单步大小。

参数
[in]pageStep单步大小.
参见
QSlider::setPageStep()

◆ setRightIcon()

void DSlider::setRightIcon ( const QIcon &  right)

设置滑块右图标.

参数
[in]right右图标

◆ setRightTicks()

void DSlider::setRightTicks ( const QStringList &  info)

设置滑块右侧的刻度值.

根据 QStringList 数量,绘制刻度的个数,绘制刻度标识:滑块为水平,刻度在滑块下方;滑块为垂直,刻度在滑块右侧。

参数
[in]info刻度标识

设置滑块上方的刻度值

参数
[in]info刻度标识.
参见
DSlider::setLeftTicks()

◆ setTipValue()

void DSlider::setTipValue ( const QString &  value)

用于创建气泡,气泡将跟随滑块移动.

参数
[in]value非空开启气泡,空关闭气泡(销毁)

◆ setValue()

void DSlider::setValue ( int  value)

设置滑块当前值

参数
[in]value滑块的当前值。
参见
QSlider::setValue()

◆ sizeHint()

QSize DSlider::sizeHint ( ) const
override

滑动条的大小策略.

这个函数会返回该滑动条推荐的大小,如果滑动条没有布局,这个大小将会是一个无效值,如果存在布局,将返回该布局下的推荐大小。

参见
QSlider::sizeHint

◆ slider()

QSlider * DSlider::slider ( )

返回 QSlider 对象,若 DSlider 不满足输入框的使用需求,请用此函数抛出的对象。

返回
QSlider 对象。

◆ sliderMoved

void DSlider::sliderMoved ( int  position)
signal

信号会在 slider 拖动时被发送

参数
[in]position为 slider 被拖动的指针的位置

◆ tickPosition()

QSlider::TickPosition DSlider::tickPosition ( ) const

返回滑块的记号位置. 获取滑块刻度当前朝向。

返回
滑块刻度的朝向
参见
QSlider::TickPosition

◆ value()

int DSlider::value ( ) const

DSlider::value

参见
QSlider::value()

◆ valueChanged

void DSlider::valueChanged ( int  value)
signal

信号会在 slider 的 value 值改变时被发送

参数
[in]valueslider 的当前值

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