当前位置 : 主页 > 编程语言 > c语言 >

Qt之QDial选择器

来源:互联网 收集:自由互联 发布时间:2023-08-28
@TOC 前言 Qt是一种流行的跨平台的C++ GUI应用程序开发框架,用于构建图形用户界面(GUI)和其他桌面应用程序。QDial是Qt框架中的一个小部件,用于创建旋转式的拨号器。本文将介绍如何使

@TOC


前言

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


一、QDial是什么

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

Qt之QDial选择器_ide

接下来,我将带大家来学习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元素,您可以创建出富有创意和独特的用户界面,满足各种应用程序的需求。

上一篇:2015年湖南省对口高考真题
下一篇:没有了
网友评论