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

DArrowRectangle 提供了可以在四个边中的任意一个边显示箭头的矩形控件. 更多...

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

Public 类型

enum  ArrowDirection { ArrowLeft , ArrowRight , ArrowTop , ArrowBottom }
 箭头方向枚举包含 DArrowRectangle 的箭头可能指向的可能方向. 更多...
 
enum  FloatMode { FloatWindow , FloatWidget }
 FloatMode 表示不同的控件的浮动模式 更多...
 

信号

void windowDeactivate () const
 

Public 成员函数

 DArrowRectangle (ArrowDirection direction, QWidget *parent=nullptr)
 获取 DArrowRectangle 实例
 
 DArrowRectangle (ArrowDirection direction, FloatMode floatMode, QWidget *parent=nullptr)
 获取 DArrowRectangle 实例,并指定浮动模式.
 
int radius () const
 
bool radiusForceEnabled () const
 是否强制(忽略特效)开启圆角
 
int arrowHeight () const
 
int arrowWidth () const
 
int arrowX () const
 
int arrowY () const
 
int margin () const
 
int borderWidth () const
 
QColor borderColor () const
 
QColor backgroundColor () const
 
ArrowDirection arrowDirection () const
 
void setRadius (int value)
 设置圆角大小
 
void setRadiusForceEnable (bool enable)
 设置圆角样式
 
void setArrowHeight (int value)
 设置箭头高度
 
void setArrowWidth (int value)
 设置箭头宽度
 
void setArrowX (int value)
 设置箭头 x 坐标的值
 
void setArrowY (int value)
 设置箭头 y 坐标的值
 
void setMargin (int value)
 设置边距大小
 
void setBorderWidth (int borderWidth)
 
void setBorderColor (const QColor &borderColor)
 
void setBackgroundColor (const QColor &backgroundColor)
 
void setBackgroundColor (DBlurEffectWidget::MaskColorType type)
 是一个重载方法
 
void setArrowDirection (ArrowDirection value)
 设置箭头方向
 
void setWidth (int value)
 设置整个控件固定的宽度
 
void setHeight (int value)
 设置整个控件固定的高度
 
virtual void show (int x, int y)
 在指定的坐标位置显示本控件
 
void setContent (QWidget *content)
 设置要显示在矩形内的内容控件
 
QWidget * getContent () const
 获取内容控件
 
void resizeWithContent ()
 根据内容控件的大小自动设置矩形控件的大小
 
void move (int x, int y)
 移动到指定的坐标位置
 
QSize getFixedSize ()
 获取整个矩形控件的大小
 
qreal shadowXOffset () const
 
qreal shadowYOffset () const
 
qreal shadowBlurRadius () const
 
void setShadowBlurRadius (const qreal &shadowBlurRadius)
 
void setShadowXOffset (const qreal &shadowXOffset)
 
void setShadowYOffset (const qreal &shadowYOffset)
 
void setLeftRightRadius (bool enable)
 设置左右箭头时的圆角
 
void setRadiusArrowStyleEnable (bool enable)
 设置圆角箭头样式
 

Protected 成员函数

void paintEvent (QPaintEvent *) Q_DECL_OVERRIDE
 
void resizeEvent (QResizeEvent *e) Q_DECL_OVERRIDE
 
bool event (QEvent *e) Q_DECL_OVERRIDE
 

属性

QColor backgroundColor
 这个属性表示矩形控件的背景颜色
 
QColor borderColor
 这个属性表示控件边框的颜色
 
int borderWidth
 这个属性表示控件边框的宽度
 
int radius
 这个属性表示矩形的圆角
 
int arrowWidth
 这个属性表示箭头的宽度
 
int arrowHeight
 这个属性表示箭头的高度
 
int arrowX
 这个属性表示箭头的x轴坐标
 
int arrowY
 这个属性表示箭头的y轴坐标
 
int margin
 这个属性表示边距大小
 
ArrowDirection arrowDirection
 这个属性表示箭头的方向
 
qreal shadowXOffset
 这属性表示小部件及其阴影在x轴上的偏移量
 
qreal shadowYOffset
 这属性表示小部件及其阴影在y轴上的偏移量
 
qreal shadowBlurRadius
 这个属性保存小部件阴影的模糊半径
 

详细描述

DArrowRectangle 提供了可以在四个边中的任意一个边显示箭头的矩形控件.

通常用于作为其他控件的容器,将其显示在矩形内作为内容控件

参见
DArrowRectangle::setContent()

DArrowRectangle 用法示例

通过简单的程序来了解 DArrowRectangle的用法。 项目目录结构在同一目录下。

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 (浮动方式为 FloatWidget)

#include <DArrowRectangle> //导入DArrowRectangle依赖包
#include <DApplication>
#include <DMainWindow>
#include <DWidget>
#include <DPushButton>
DWIDGET_USE_NAMESPACE //使用DTK widget命名空间
int main(int argc, char *argv[]){
DApplication app(argc, argv);
DMainWindow win; //实例化一个 mainwindow 作为主窗口
win.resize(400,250); //设置窗口大小
//实例化一个 DArrowRectangle 控件, 第一个参数指定方向,第二个参数指定浮动方式,第三个参数指定父控件地址
DWidget widget; //新建一个 widget 作为DArrowRectangle中的显示内容
DPushButton *btn = new DPushButton("按钮", &widget); //新建一个按钮放到上面新建的widget中
btn->move(20,25);
widget.resize(100,70); //设置 widget 大小,注意 DArrowRectangle 会根据其内容 widget 的大小改变其本身大小
arrRec->setContent(&widget); //将 widget 放置到 DArrowRectangle 里
arrRec->setArrowX(50); //设置 DArrowRectangle 的箭头位置
arrRec->setRadiusArrowStyleEnable(true); //可通过此函数设置 DArrowRectangle 箭头是否为圆角风格
arrRec->setRadius(8); //设置 DArrowRectangle 圆角值
arrRec->move(200, 50); //移动 DArrowRectangle 的位置
win.show(); //展示主窗口
return app.exec(); //运行程序并等待响应
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
DArrowRectangle 提供了可以在四个边中的任意一个边显示箭头的矩形控件.
Definition darrowrectangle.h:24
void setContent(QWidget *content)
设置要显示在矩形内的内容控件
Definition darrowrectangle.cpp:138
void setRadius(int value)
设置圆角大小
Definition darrowrectangle.cpp:682
void setArrowX(int value)
设置箭头 x 坐标的值
Definition darrowrectangle.cpp:727
void setRadiusArrowStyleEnable(bool enable)
设置圆角箭头样式
Definition darrowrectangle.cpp:324
@ FloatWidget
控件只能显示在其父控件的布局中,不能超出父控件大小
Definition darrowrectangle.h:40
@ ArrowTop
指示此矩形的箭头将指向上方
Definition darrowrectangle.h:34
void move(int x, int y)
移动到指定的坐标位置
Definition darrowrectangle.cpp:212
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20

运行程序效果如下:

darrowrectangle_example1

main.cpp (浮动方式为 FloatWindow)

#include <DArrowRectangle> //导入DArrowRectangle依赖包
#include <DApplication>
#include <DMainWindow>
#include <DWidget>
#include <DPushButton>
DWIDGET_USE_NAMESPACE //使用DTK widget命名空间
int main(int argc, char *argv[]){
DApplication app(argc, argv);
//实例化一个 DArrowRectangle 控件, 第一个参数指定方向,第二个参数指定浮动方式,第三个参数指定父控件地址
DWidget widget; //新建一个 widget 作为DArrowRectangle中的显示内容
DPushButton *btn = new DPushButton("按钮", &widget); //新建一个按钮放到上面新建的widget中
btn->move(20,25);
widget.resize(100,60); //设置 widget 大小,注意 DArrowRectangle 会根据其内容 widget 的大小改变其本身大小
arrRec->setContent(&widget); //将 widget 放置到 DArrowRectangle 里
arrRec->setArrowX(50); //设置 DArrowRectangle 的箭头位置
arrRec->setRadiusArrowStyleEnable(true); //可通过此函数设置 DArrowRectangle 的箭头是否为圆角风格
arrRec->setRadius(8); //设置 DArrowRectangle 圆角值
arrRec->show(200, 500); //显示 DArrowRectangle
return app.exec(); //运行程序并等待响应
}
@ FloatWindow
控件将会以一个单独的窗口显示
Definition darrowrectangle.h:39
virtual void show(int x, int y)
在指定的坐标位置显示本控件
Definition darrowrectangle.cpp:125

运行程序效果如下:

darrowrectangle_example2

成员枚举类型说明

◆ ArrowDirection

箭头方向枚举包含 DArrowRectangle 的箭头可能指向的可能方向.

枚举值
ArrowLeft 

指示此矩形的箭头将指向左侧

ArrowRight 

指示此矩形的箭头将指向右侧

ArrowTop 

指示此矩形的箭头将指向上方

ArrowBottom 

指示此矩形的箭头将向下指向

◆ FloatMode

FloatMode 表示不同的控件的浮动模式

控件的浮动模式表示控件如何显示在布局中,DArrowRectangle::FloatWindow 表示控件将会以一个单独的窗口显示,而 DArrowRectangle::FloatWidget 则表示控件只能显示在其父控件的布局中,不能超出父控件大小

枚举值
FloatWindow 

控件将会以一个单独的窗口显示

FloatWidget 

控件只能显示在其父控件的布局中,不能超出父控件大小

构造及析构函数说明

◆ DArrowRectangle() [1/2]

DArrowRectangle::DArrowRectangle ( ArrowDirection  direction,
QWidget *  parent = nullptr 
)
explicit

获取 DArrowRectangle 实例

参数
[in]direction用于初始化箭头的方向
[in]parent作为其父控件

◆ DArrowRectangle() [2/2]

DArrowRectangle::DArrowRectangle ( ArrowDirection  direction,
FloatMode  floatMode,
QWidget *  parent = nullptr 
)
explicit

获取 DArrowRectangle 实例,并指定浮动模式.

参数
[in]direction用于初始化箭头的方向
[in]floatMode浮动模式
[in]parent作为其父控件
参见
DArrowRectangle::FloatMode

成员函数说明

◆ getContent()

QWidget * DArrowRectangle::getContent ( ) const

获取内容控件

返回
正在显示的内容控件

◆ getFixedSize()

QSize DArrowRectangle::getFixedSize ( )

获取整个矩形控件的大小

返回
矩形控件的大小

◆ move()

void DArrowRectangle::move ( int  x,
int  y 
)

移动到指定的坐标位置

参数
[in]x控件箭头的x轴坐标
[in]y控件箭头的y轴坐标
参见
DArrowRectangle::show(int x, int y)
DArrowRectangle::show

◆ radiusForceEnabled()

bool DArrowRectangle::radiusForceEnabled ( ) const

是否强制(忽略特效)开启圆角

Getter: DArrowRectangle::radiusForceEnabled , Setter: DArrowRectangle::setRadiusForceEnable

◆ setArrowDirection()

void DArrowRectangle::setArrowDirection ( ArrowDirection  value)

设置箭头方向

参数
[in]value箭头方向
参见
DArrowRectangle::arrowDirection

◆ setArrowHeight()

void DArrowRectangle::setArrowHeight ( int  value)

设置箭头高度

参数
[in]value箭头高度
参见
DArrowRectangle::arrowHeight

◆ setArrowWidth()

void DArrowRectangle::setArrowWidth ( int  value)

设置箭头宽度

参数
[in]value箭头宽度
参见
DArrowRectangle::arrowWidth

◆ setArrowX()

void DArrowRectangle::setArrowX ( int  value)

设置箭头 x 坐标的值

参数
[in]valuex 坐标的值
参见
DArrowRectangle::arrowX

◆ setArrowY()

void DArrowRectangle::setArrowY ( int  value)

设置箭头 y 坐标的值

参数
[in]y坐标的值
参见
DArrowRectangle::arrowY

◆ setBackgroundColor()

void DArrowRectangle::setBackgroundColor ( DBlurEffectWidget::MaskColorType  type)

是一个重载方法

通过改变 DBlurEffectWidget::MaskColorType 来修改控件矩形的背景

参数
[in]type要设置的蒙版颜色
参见
DArrowRectangle::backgroundColor
DBlurEffectWidget::MaskColorType

◆ setContent()

void DArrowRectangle::setContent ( QWidget *  content)

设置要显示在矩形内的内容控件

参数
[in]content要显示内容控件

◆ setHeight()

void DArrowRectangle::setHeight ( int  value)

设置整个控件固定的高度

参数
[in]value高度大小

◆ setLeftRightRadius()

void DArrowRectangle::setLeftRightRadius ( bool  enable)

设置左右箭头时的圆角

参数
[in]enable是否开启

◆ setMargin()

void DArrowRectangle::setMargin ( int  value)

设置边距大小

参数
[in]value边距大小
参见
DArrowRectangle::margin

◆ setRadius()

void DArrowRectangle::setRadius ( int  value)

设置圆角大小

参数
[in]value圆角大小
参见
DArrowRectangle::radius

◆ setRadiusArrowStyleEnable()

void DArrowRectangle::setRadiusArrowStyleEnable ( bool  enable)

设置圆角箭头样式

参数
[in]enable是否开启

◆ setRadiusForceEnable()

void DArrowRectangle::setRadiusForceEnable ( bool  enable)

设置圆角样式

默认窗管支持特效混成时有圆角,没有特效时没有圆角,如果启用一直都有圆角

参数
[in]enable是否开启

◆ setWidth()

void DArrowRectangle::setWidth ( int  value)

设置整个控件固定的宽度

参数
[in]value宽度大小

◆ show()

void DArrowRectangle::show ( int  x,
int  y 
)
virtual

在指定的坐标位置显示本控件

注解
坐标被计算为箭头的位置,所以你不需要自己计算箭头位置
参数
[in]x控件箭头的x轴坐标
[in]y控件箭头的y轴坐标

属性说明

◆ arrowDirection

DArrowRectangle::ArrowDirection DArrowRectangle::arrowDirection
readwrite

这个属性表示箭头的方向

Getter: DArrowRectangle::arrowDirection , Setter: DArrowRectangle::setArrowDirection

◆ arrowHeight

int DArrowRectangle::arrowHeight
readwrite

这个属性表示箭头的高度

Getter: DArrowRectangle::arrowHeight , Setter: DArrowRectangle::setArrowHeight

参见
DArrowRectangle::arrowWidth

◆ arrowWidth

int DArrowRectangle::arrowWidth
readwrite

这个属性表示箭头的宽度

Getter: DArrowRectangle::arrowWidth , Setter: DArrowRectangle::setArrowWidth

参见
DArrowRectangle::arrowHeight

◆ arrowX

int DArrowRectangle::arrowX
readwrite

这个属性表示箭头的x轴坐标

Getter: DArrowRectangle::arrowX , Setter: DArrowRectangle::setArrowX

参见
DArrowRectangle::arrowY

◆ arrowY

int DArrowRectangle::arrowY
readwrite

这个属性表示箭头的y轴坐标

Getter: DArrowRectangle::arrowY , Setter: DArrowRectangle::setArrowY

参见
DArrowRectangle::arrowX

◆ backgroundColor

QColor DArrowRectangle::backgroundColor
readwrite

这个属性表示矩形控件的背景颜色

Getter: DArrowRectangle::backgroundColor , Setter: DArrowRectangle::setBackgroundColor

◆ borderColor

QColor DArrowRectangle::borderColor
readwrite

这个属性表示控件边框的颜色

Getter: DArrowRectangle::borderColor , Setter: DArrowRectangle::setBorderColor

◆ borderWidth

int DArrowRectangle::borderWidth
readwrite

这个属性表示控件边框的宽度

Getter: DArrowRectangle::borderWidth , Setter: DArrowRectangle::setBorderWidth

◆ margin

int DArrowRectangle::margin
readwrite

这个属性表示边距大小

边距是指矩形最里面的像素与其内容最外面的像素之间的距离

Getter: DArrowRectangle::margin , Setter: DArrowRectangle::setMargin

参见
DArrowRectangle::setMargin

◆ radius

int DArrowRectangle::radius
readwrite

这个属性表示矩形的圆角

Getter: DArrowRectangle::radius , Setter: DArrowRectangle::setRadius

◆ shadowBlurRadius

qreal DArrowRectangle::shadowBlurRadius
readwrite

这个属性保存小部件阴影的模糊半径

Getter: DArrowRectangle::shadowBlurRadius Setter: DArrowRectangle::setShadowBlurRadius

◆ shadowXOffset

qreal DArrowRectangle::shadowXOffset
readwrite

这属性表示小部件及其阴影在x轴上的偏移量

Getter: DArrowRectangle::shadowXOffset Setter: DArrowRectangle::setShadowXOffset

参见
DArrowRectangle::shadowYOffset

◆ shadowYOffset

qreal DArrowRectangle::shadowYOffset
readwrite

这属性表示小部件及其阴影在y轴上的偏移量

Getter: DArrowRectangle::shadowYOffset Setter: DArrowRectangle::setShadowYOffset

参见
DArrowRectangle::shadowXOffset

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