QT基础 - 输入类控件

目录

一. QLineEdit

二. QTextEdit 

三. QComboBox

四. QSpinBox

五. QDateEdit & QTimeEdit

六. QDial

七. QSlider

八. 总结


一. QLineEdit

QLineEdit 是一个允许用户输入和编辑单行文本的控件。

属性

  • echoMode:设置输入框的显示模式,如密码模式等。
  • text:获取或设置输入框中的文本。
  • placeholderText:设置占位文本。

方法

  • setText:设置文本。
  • clear:清空文本。
  • textChanged:文本改变信号。

示例代码

#include <QApplication>
#include <QLineEdit>
#include <QWidget>
#include <QLabel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;
    window.setWindowTitle("QLineEdit 示例");

    QLineEdit lineEdit(&window);
    lineEdit.move(50, 50);

    QLabel label(&window);
    label.move(50, 80);
    label.setGeometry(100,100,100,100);

    QObject::connect(&lineEdit, &QLineEdit::textChanged, [&](const QString &text) {
        label.setText("你输入的是: " + text);
    });

    window.setGeometry(100, 100, 300, 200);

    window.show();

    return app.exec();
}

效果图:

二. QTextEdit 

QTextEdit 是一个多行文本编辑框控件,支持丰富的文本编辑功能。

属性

  • text:获取或设置文本内容。
  • font:设置字体。

方法

  • setText:设置文本。
  • append:添加文本到末尾。
  • clear:清空文本。

示例代码

#include <QApplication>
#include <QTextEdit>
#include <QWidget>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QTextEdit textEdit(&window);

    textEdit.append("这是初始文本");

    QPushButton btn(&window);
    btn.setText("添加文本");
    btn.move(100, 100);

    QObject::connect(&btn, &QPushButton::clicked, [&]() {
        textEdit.append(" 新添加的内容");
    });

    window.show();

    return app.exec();
}

效果图:

三. QComboBox

QComboBox(组合框)是一个提供了下拉列表选择的控件。

属性

  • currentText:获取当前选中的文本。
  • currentIndex:获取当前选中项的索引。
  • count:获取选项的数量。

方法

  • addItem:添加一个选项。
  • addItems:添加多个选项。
  • setCurrentIndex:设置当前选中的索引。
  • clear:清空选项。

示例代码:

#include <QApplication>
#include <QComboBox>
#include <QWidget>
#include<QPushButton>
#include<iostream>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QComboBox comboBox(&window);

    comboBox.addItem("选项 1");
    comboBox.addItem("选项 2");
    comboBox.addItem("选项 3");

    QPushButton btn(&window);
    btn.setText("获取选中项");
    btn.move(100, 100);

    QObject::connect(&btn, &QPushButton::clicked, [&]() {
        std::cout << "当前选中项: " << comboBox.currentText().toStdString() << std::endl;
    });

    window.show();

    return app.exec();
}

效果图:

四. QSpinBox

QSpinBox 是一个用于输入整数值的控件,通常带有上下箭头用于增减数值。

属性

  • value:当前值。
  • minimum:最小值。
  • maximum:最大值。

方法

  • setValue:设置值。
  • stepUp:增加一个步长。
  • stepDown:减少一个步长。

示例代码

#include <QApplication>
#include <QSpinBox>
#include <QWidget>
#include<QPushButton>
#include<iostream>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QSpinBox spinBox(&window);
    spinBox.setRange(0, 100);
    spinBox.setGeometry(100,100,100,100);

    QPushButton btn(&window);
    btn.setText("获取数值");
    btn.move(100, 100);

    QObject::connect(&btn, &QPushButton::clicked, [&]() {
        std::cout << "当前数值:%d " << spinBox.value() << std::endl;
    });

    window.show();

    return app.exec();
}

效果图:

五. QDateEdit & QTimeEdit

QDateEdit 是一个用于编辑日期的控件,而 QTimeEdit 是一个用于编辑时间的控件。它们都继承自 QDateTimeEdit,提供了一些特定的功能和属性。

QDateEdit 属性:

  • date:保存了部件的显示日期。
  • minimumDate:定义了用户可以设置的最小日期。
  • maximumDate:定义了用户可以设置的最大日期。
  • displayFormat:包含了一个字符串用于格式化日期。

QTimeEdit 属性:

  • time:保存了部件的显示时间。
  • minimumTime:定义了用户可以设置的最小时间。
  • maximumTime:定义了用户可以设置的最大时间。
  • displayFormat:包含了一个字符串用于格式化时间。

QDateEdit 方法:

  • setValue:设置日期值。
  • stepUp:增加一天。
  • stepDown:减少一天。

QTimeEdit 方法:

  • setValue:设置时间值。
  • stepUp:增加一分钟。
  • stepDown:减少一分钟。

下面是一个使用 QDateEdit 和 QTimeEdit 的示例代码:

#include <QApplication>
#include <QDateEdit>
#include <QTimeEdit>
#include <QVBoxLayout>
#include <QWidget>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QDateEdit dateEdit(&window);
    dateEdit.setDate(QDate::currentDate());

    QTimeEdit timeEdit(&window);
    timeEdit.setTime(QTime::currentTime());

    QVBoxLayout layout(&window);
    layout.addWidget(&dateEdit);
    layout.addWidget(&timeEdit);

    window.setLayout(&layout);
    window.show();

    return app.exec();
}

效果图:

六. QDial

QDial 是一个圆形的刻度盘控件,用户可以通过旋转来选择数值。

属性

  • minimum:最小值。
  • maximum:最大值。
  • value:当前值。

方法

  • setValue:设置当前值。

示例代码

#include <QApplication>
#include <QDial>
#include <QWidget>
#include<QPushButton>
#include<iostream>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QDial dial(&window);
    dial.setMinimum(0);
    dial.setMaximum(100);

    QPushButton btn(&window);
    btn.setText("获取数值");
    btn.move(100, 100);

    QObject::connect(&btn, &QPushButton::clicked, [&]() {
        std::cout << "当前数值: " << dial.value() << std::endl;
    });

    window.show();

    return app.exec();
}

效果图:

七. QSlider

QSlider 是一个滑动条控件,用于直观地选择一个范围内的数值。

属性

  • minimum:最小值。
  • maximum:最大值。
  • value:当前值。
  • orientation:方向(水平或垂直)。

方法

  • setValue:设置值。
  • setMinimum:设置最小值。
  • setMaximum:设置最大值。

示例代码

#include <QApplication>
#include <QSlider>
#include <QWidget>
#include<QPushButton>
#include<iostream>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;

    QSlider slider(&window);
    slider.setOrientation(Qt::Horizontal);
    slider.setMinimum(0);
    slider.setMaximum(100);

    QPushButton btn(&window);
    btn.setText("获取数值");
    btn.move(100, 100);

    QObject::connect(&btn, &QPushButton::clicked, [&]() {
        std::cout << "当前数值: " << slider.value() << std::endl;
    });

    window.show();

    return app.exec();
}

效果图:

八. 总结

QLineEdit:用于单行文本输入。

QTextEdit:支持多行文本的编辑和显示。

QComboBox:提供一个下拉列表供用户选择。

QSpinBox:用于数值的增减选择。

QDateEdit:专门处理日期的输入和显示。

QTimeEdit:专门处理时间的输入和显示。

QDial:以圆形仪表盘样式供用户选择数值。

QSlider:通过滑动条的方式直观地选择数值。

这些控件在 Qt 中各自承担着不同的功能,以满足各种界面交互和数据输入、展示的需求,为开发者构建丰富多样的图形用户界面提供了有力支持。

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月(全栈)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值