目录
一、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());
}
效果










