目录
- 一、Line Edit
- 二、Text Edit
- 三、ComBo
- 四、DateTimeEdit
- 五、Slider
一、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转化为QStringui->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());
}效果
 