【Qt】常用控件(输入类)

一、Line Edit

QLineEdit 用来表示单行输入框,可以输入一段文本,但是不能换行。

属性 说明
test 输入框中的文本
inputMask 输入内容格式约束
maxLength 最大长度
frame 是否添加边框
echoMode 显示方式,normal,Password:隐藏,使用*代替,NoEcho:不显示任何字符
alignment 文本对齐方式
dragEnabled 是否允许拖拽
readOnly 是否不可修改
placeHolderTest 输入框为空时,显示的提示信息
clearButtonEnabled 清除按钮

实例

获取lineEdit中信息打印出来

在ui中拖入几个lineEdit以及label和pushbutton

在这里插入图片描述

给提交设置槽函数
在这里插入图片描述

#include "widget.h"
#include "ui_widget.h"
#include<QLineEdit>
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //编辑用户名
    //默认显示内容
    ui->lineEdit_name->setPlaceholderText("请输入用户名");

    //编辑密码
    //默认显示内容
    ui->lineEdit_password->setPlaceholderText("请输入密码");
    //内容显示为密码格式
    ui->lineEdit_password->setEchoMode(QLineEdit::Password);
    //添加清除按钮
    ui->lineEdit_password->setClearButtonEnabled(true);

    //编辑手机号
    ui->lineEdit_phone->setPlaceholderText("请输入手机号");

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    QString gender = ui->radioButton_male->isChecked()?"男":"女";
    qDebug()<<"用户名:"<<ui->lineEdit_name->text()
         <<"密码:"<<ui->lineEdit_password->text()
        <<"性别"<<gender
       <<"电话号:"<<ui->lineEdit_phone->text();

}

//复选框槽函数,用来显示LineEdit中密码是否可见
void Widget::on_checkBox_toggled(bool checked)
{
    if(checked)
    {
        ui->lineEdit_password->setEchoMode(QLineEdit::Normal);
    }else
    {
        ui->lineEdit_password->setEchoMode(QLineEdit::Password);
    }
}

实现效果
请添加图片描述

二、Text Edit

QTextEdit 表示多行输入框.也是一个富文本& markdown编辑器.
并且能在内容超出编辑框范围时自动提供滚动条.

属性 说明
markdown 输入框内持有的内容.支持 markdown 格式.能够自动的对markdown 文本进行渲染成 html
html 输入框内持有的内容.可以支持大部分 html标签.包括 img 和 table 等
placeHolderText 输入框为空时提示的内容,
readOnly 是否只读
undoRedoEnable 是否开启undo、redo功能 ctrl+z触发undo,ctrl+y触发redo
autoFormating 开启自动格式化
tabstopWidth 按下缩进占多少空间
overwirteMode 是否开启覆盖模式
信号 说明
textChanged() 文本内容被修改
selectionChanged() 选中区域被修改
cursorPositionChanged() 光标位置被修改
undoAvaliable(bool) undo操作时触发
redoAvaliable(bool) redo操作时触发
copyAvaliable(bool) 文本被选中/取消时触发

实例:

先在ui中拖入需要的控件,一个TestEdit
请添加图片描述

//修改TestEdit中内容触发该信号  testChanged()
void Widget::on_textEdit_textChanged()
{
    qDebug()<<"textchanged: "<<ui->textEdit->toPlainText();
}
//选择TestEdit中内容触发信号  selectionChanged()
void Widget::on_textEdit_selectionChanged()
{
    QTextCursor cursor = ui->textEdit->textCursor();
    qDebug()<<"selectionChanged: "<<cursor.selectedText();
}
//光标位置移动时触发
void Widget::on_textEdit_cursorPositionChanged()
{
    QTextCursor cursor = ui->textEdit->textCursor();
    qDebug()<<"cursorPositionChanged: "<<cursor.position();
}

三、ComBo

QComboBox 表示下拉框

属性 说明
currentText 当前选中的文本
currentIndex 当前选中的条目下标
editable 是否允许被修改
iconSize 下拉框大小
maxCount 最多允许多少个条目
addItem(const QString&) 添加一个条目
currentText() 获取当前条目的文本内容

信号

信号 说明
activited(int)
activited(const QString&)
当用户选择一个选项时发出,点开下拉框,鼠标滑过某个选项,但是还没有做出选择
currentIndexChange(int)
currentIndexChange(const QString&)
当前选择改变时发生
editTextChange(const QString&) 当编辑框中内容发生改变时发出

实例

显示下拉框中内容

方法① 使用代码设置条目内容

在这里插入图片描述

方法② 右键控件点击编辑项目

在这里插入图片描述

从文件中读取下拉列表条目

在这里插入图片描述

    //读取文件中内容,将文件中内容读取作为combobox的选项
    std::ifstream file("C:/Users/HP/Desktop/config.txt");
    if(!file.is_open())
    {
        qDebug()<<"读取失败";
        return;
    }
    //按行读取文本
    std::string line;
    while(std::getline(file,line))
    {
        //取到的内容设置到下拉框中
        //QString中静态方法,将string转化为QString
        ui->comboBox->addItem(QString::fromStdString(line));
    }
    file.close();

四、DateTimeEdit

属性 说明
dateTime 时间日期的值
date 单纯日期的值
time 单纯时间的值
displayFormat 时间的日期格式
minimumDateTime 最小日期时间
maximumDateTime 最大日期时间
timeSpec Qt::LocalTime 显示本地时间
Qt::UTC 显示协调世界时
Qt::OffsetFromUTC 显示相对UTC偏移量

信号

属性 说明
dateChanged(QDate) 日期改变时触发
timeChanged(QTime) 时间改变时触发
dateTimeChanged(QDateTime) 时间日期任意一个改变时触发

实例
计算两个date之间的天数差
在这里插入图片描述

在这里插入图片描述

五、Slider

QSlider表示一个滑动条

属性 说明
value 持有的数值
minimum 最小值
maximum 最大值
singleStep 按下方向键时改变的步长
sliderPosition 滑动条显示的初始位置
tracking 外观是否跟随数值变化
orientation 滑动条是水平还是垂直
invertedAppearance 是否翻转滑动跳长方向
tickPosition 刻度的位置
tickInterval 刻度的密集程度

信号

属性 说明
valueChanged(int) 数值变化时发出
rangeChanged(int,int) 范围变化时发出

实例

通过滑动条改变窗口大小

在这里插入图片描述

为滑动条增加快捷键控制窗口大小

#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
#include<QRect>
#include<QShortcut>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->horizontalSlider->setMinimum(0);
    ui->horizontalSlider->setMaximum(1800);
    ui->horizontalSlider->setSliderPosition(800);

    QShortcut* shortcut1 = new QShortcut(this);
    shortcut1->setKey(QKeySequence("-"));
    connect(shortcut1,&QShortcut::activated,this,&Widget::Sub);

    QShortcut* shortcut2 = new QShortcut(this);
    shortcut2->setKey(QKeySequence("="));
    connect(shortcut2,&QShortcut::activated,this,&Widget::Add);

}

Widget::~Widget()
{
    delete ui;

}

void Widget::Add()
{
    int value = ui->horizontalSlider->value();
    ui->horizontalSlider->setValue(value+20);
}

void Widget::Sub()
{
    int value = ui->horizontalSlider->value();
    ui->horizontalSlider->setValue(value-20);
}


void Widget::on_horizontalSlider_valueChanged(int value)
{
    QRect rect = this->geometry();
    this->setGeometry(rect.x(),rect.y(),value,rect.height());
}

效果
请添加图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 10:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 10:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 10:40:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 10:40:03       20 阅读

热门阅读

  1. springMVC

    springMVC

    2024-03-30 10:40:03      18 阅读
  2. Redission快速入门

    2024-03-30 10:40:03       16 阅读
  3. 001-从零学习设计模式-设计原则

    2024-03-30 10:40:03       17 阅读
  4. Redis的数据类型List使用场景实战

    2024-03-30 10:40:03       17 阅读
  5. 如何使用 RabbitMQ 进行消息的发送和接收

    2024-03-30 10:40:03       19 阅读
  6. 查验身份证

    2024-03-30 10:40:03       15 阅读
  7. 如何使用 WebView 将 React Native 嵌入到原生应用中

    2024-03-30 10:40:03       20 阅读
  8. HTTPS

    HTTPS

    2024-03-30 10:40:03      18 阅读
  9. 当构造器参数较多时考虑用生成器

    2024-03-30 10:40:03       18 阅读
  10. 复习拓扑排序

    2024-03-30 10:40:03       21 阅读
  11. Redis 过期删除策略

    2024-03-30 10:40:03       17 阅读
  12. Springmvc文件下载例子

    2024-03-30 10:40:03       21 阅读