Qt之QDial选择器

文章目录

  • 前言
  • 一、QDial是什么
  • 二、操作api
  • 信号与槽
  • 示例代码
  • 总结


前言

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


一、QDial是什么

QDial很像大家在射击手游中的移动键。如下图所示:
Qt之QDial选择器_第1张图片
接下来,我将带大家来学习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 
#include 
#include 
#include 
#include 

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,开发语言,c++,qt5,windows)