Qt之QDial选择器

简介: Qt之QDial选择器

前言


Qt是一种流行的跨平台的C++ GUI应用程序开发框架,用于构建图形用户界面(GUI)和其他桌面应用程序。QDial是Qt框架中的一个小部件,用于创建旋转式的拨号器。本文将介绍如何使用QDial进行基本的GUI应用程序开发,包括QDial的主要特性和方法,以及如何将其添加到应用程序的用户界面中。


一、QDial是什么


QDial很像大家在射击手游中的移动键。如下图所示:

bb936cc535914fe1994a09bf812929b2.png

接下来,我将带大家来学习QDial


二、操作api


  • 构造函数:
QDial(QWidget *parent = nullptr):构造一个 QDial 对象,并指定其父级窗口。


  • 值设置和获取:
void setValue(int value):设置 QDial 的当前值。
int value() const:获取 QDial 的当前值。


  • 范围设置和获取:
void setRange(int minValue, int maxValue):设置 QDial 的取值范围。
int minimum() const:获取 QDial 的最小值。
int maximum() const:获取 QDial 的最大值。


  • 步长设置和获取:
void setSingleStep(int step):设置 QDial 的步长。
int singleStep() const:获取 QDial 的步长。


  • 外观设置和获取:
void setNotchesVisible(bool visible):设置是否显示 QDial 上的刻度线。
bool notchesVisible() const:检查是否显示 QDial 上的刻度线。


  • 返回 QDial 上刻度线的大小,
    刻度线的大小指的是刻度线的长度。
int notchSize() const


  • 返回 QDial 上刻度线的目标位置。
    刻度线的目标位置是一个介于 0.0 和 1.0 之间的小数值,表示刻度线在 QDial 上的相对位置。
qreal notchTarget() const


  • 设置 QDial 上刻度线的目标位置。
    target 参数是一个介于 0.0 和 1.0 之间的小数值,表示刻度线在 QDial 上的相对位置。
void setNotchTarget(double target)


  • 返回一个布尔值,指示 QDial 是否启用环绕模式。
    如果环绕模式启用,旋转旋钮会在最小值和最大值之间循环;如果禁用,旋钮会在达到最小值或最大值时停止旋转。
bool wrapping() const


信号与槽


由于QDial继承于QAbstractSlider,所以QDial的信号与槽是和QAbstractSlider是一样的!

  • 当范围值改变时
void rangeChanged(int min, int max)


  • 当滑动时
void sliderMoved(int value)


  • 当滑块被按下时
void sliderPressed()


  • 当滑块释放时
void sliderReleased()


  • 当值变化时
void valueChanged(int value)


示例代码


因为其很简单,所以我并未创建Widget类,直接使用QWidget

#include <QApplication>
#include <QDial>
#include <QVBoxLayout>
#include <QDebug>
#include <QWidgt>
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    // 创建主窗口及布局
    Widget window;
    QVBoxLayout layout(&window);
    // 创建 QDial
    QDial dial;
    // 设置 QDial 的取值范围和步长
    dial.setRange(0, 100);
    dial.setSingleStep(1);
    // 设置刻度线可见
    dial.setNotchesVisible(true);
    // 设置刻度线的目标位置
    dial.setNotchTarget(0.2);
    // 设置环绕模式启用
    dial.setWrapping(true);
    // 连接 QDial 的 valueChanged 信号到输出当前值
    QObject::connect(&dial, &QDial::valueChanged, [](int value){
        qDebug() << "Value:" << value;
    });
    // 将 QDial 添加到布局中
    layout.addWidget(&dial);
    // 显示窗口
    window.show();
    return app.exec();
}


上述示例代码创建了一个简单的窗口应用程序,其中包含一个 QDial 控件。在该示例中,我们将 QDial 的取值范围设置为 0 到 100,并将步长设置为 1。我们还通过设置 setNotchesVisible(true) 使刻度线可见,并使用 setNotchTarget(0.2) 设置刻度线的目标位置为 0.2。然后,我们使用 setWrapping(true) 启用了环绕模式。最后,我们通过连接 valueChanged 信号来输出 QDial 的当前值。


您可以根据需要在此示例代码的基础上进行修改和扩展,以适应您的实际需求。


总结


最后,要记住Qt提供了许多其他用于交互和用户界面设计的工具和组件。通过结合使用不同的Qt元素,您可以创建出富有创意和独特的用户界面,满足各种应用程序的需求。

相关文章
Qt样式表——选择器详解
Qt样式表——选择器详解
2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口
 1 新建一个空项目 A 编写 .pro文件 QT += gui widgets   HEADERS += \     MyDialog.h   SOURCES += \     MyDialog.cpp B 编写MyDialog.h
1120 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
157 2
Qt开发网络嗅探器02
Qt开发网络嗅探器02
|
3月前
|
存储 运维 监控
Qt开发网络嗅探器01
Qt开发网络嗅探器01
|
3月前
|
网络协议 容器
Qt开发网络嗅探器03
Qt开发网络嗅探器03