QT基础教程5--输入组件

文章目录

  • 下拉列表框QComboBox
    • QComboBox组件简介
    • QComboBox组件属性
    • QComboBox组件常用成员函数
    • 示例代码:
  • 字体下拉框
    • QFontComboBox组件简介
    • QFontComboBox组件属性
    • QFontComboBox组件常用成员函数
    • 示例代码:
  • 行编辑框QLineEdit
    • QLineEdit组件简介
    • QLineEdit组件属性
    • QLineEdit组件常用成员函数
    • 示例代码:
  • 文本编辑框QTextEdit
    • 1、QTextEdit组件简介
    • QPlainTextEdit组件常用成员函数
    • 示例代码:
  • 无格式文本编辑框QPlainTextEdit
    • 1、QPlainTextEdit组件简介
    • 2、QPlainTextEdit组件常用成员函数
  • 整数旋转框QSpinBox
    • 1、QSpinBox简介
    • 2、QSpinBox组件属性
    • 3、QSpinBox组件常用成员函数
    • 示例代码:
  • 小数旋转框QDoubleSpinBox
    • 1、QDoubleSpinBox组件简介
    • 2、QDoubleSpinBox组件属性
    • 3、QDoubleSpinBox组件常用成员函数
    • 示例代码:
  • 时间编辑框QTimeEdit
    • 1、QTimeEdit组件简介
    • 2、QTimeEdit组件属性
    • 示例代码:
  • 日期编辑框QDateEdit
    • 1、QDateEdit组件简介
    • 2、QDateEdit组件属性
    • 3、QDateEdit组件常用成员函数
  • 表盘QDial
    • 1、QDial组件简介
    • 2、QDial组件属性
    • 3、QDial组件常用成员函数
    • 示例代码:
  • 日期时间编辑框QDateTimeEdit
    • 1、QDateTimeEdit组件简介
    • 2、QDateTimeEdit组件属性
    • 3、QDateTimeEdit主要成员函数
    • 示例代码:
  • 水平滚动条QScrollBar
    • 1、QScrollBar组件简介
    • 2、QScrollBar组件属性
    • 3、QScrollBar组件常用成员函数
    • 示例代码:
  • 水平滑动条QSlider
    • 1、QSlider组件
    • 2、QSlider组件属性
    • 3、QSlider组件常用成员函数
    • 示例代码:

下拉列表框QComboBox

QComboBox组件简介

QComboBox下拉框继承自 QWidget,用于有多个选项的下拉框。

QComboBox组件属性

A、name:该控件对应源代码中的名称
B、font:设置显示的字体
C、editable:用来获取或设置一个值,以确定ComboBox的编辑框是否可编辑,值为true是为可编辑,值为false时只读
D、currentIndex:当前选项的索引
E、maxVisibleItems:ComboBox可见的最大项目数
F、maxCount:ComboBox的最大项目数

QComboBox组件常用成员函数

QComboBox::QComboBox(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的ComboBox

QComboBox::QComboBox(bool rw,QWidget *parent = 0,const char * name = 0)
构造一个名称为name,父对象为parent的ComboBox,如果rw是true,则编辑栏可编辑,否则只能选择ComboBox项目之一

void QComboBox::clear()const
删除ComboBox中的所有项目

int QComboBox::count()const
返回ComboBox中的项目数

int QComboBox::currentItem()const
返回ComboBox中当前项目的索引

QString QComboBox::currentText()const
返回组合框的当前项目文本

void QComboBox::insertItem(const QString &t,int index = -1)
在索引index处插入一个文本为t的项目,如果index是负数,该项目将被追加到末尾

void QComboBox;:insertItem(const QPixmap &pixmap,int index = -1)
在索引index处插入一个图标为pixmap的项目,如果index为负数,该项目将被追加到末尾

void QComboBox::insertItem(const QPixmap &pixmap,const QString &text,int index = -1)
在索引index处,插入一个文本为text和图标为pixmap的项目,如果index为负数,该项目将被追加到末尾

QString QComboBox::currentText()const
返回组合框当前项目文本

void QComboBox::removeItem(int index)
删除索引为index处项目

void QComboBox::setCurrentItem(int index)[virtual]
把索引index处的项目设为当前项目

void addItem(const QString & text, const QVariant & userData = QVariant())
void addItem(const QIcon & icon, const QString & text, const QVariant & userData = QVariant())
在下拉框最后添加一项

void addItems(const QStringList & texts)
在下拉框最后添加多项

void insertSeparator ( int index )
在序号为index的项前插入分隔线

void setItemText ( int index, const QString & text )
改变序号为index项的文本。

示例代码:

QWidget w;
QComboBox* combox = new QComboBox(&w);
combox->addItem("哈哈哈");
combox->addItem("你干嘛");
combox->addItem("哎呦喂");
QLineEdit* edit = new QLineEdit(combox);
combox->setLineEdit(edit);
combox->setEditable(true);
combox->insertItem(3,QIcon("D:/图片/X.png"), "图片");
w.show();
	return a.exec();

效果:
QT基础教程5--输入组件_第1张图片

字体下拉框

QFontComboBox组件简介

QFontComboBox字体组合框继承于QComboBox,QFontComboBox字体组合框分为两部分显示:顶部是一个允许输入文本的文本框,下面的列表框则显示字体列表项,但不能选择多项,只能选择其中一项,专门用于字体选择。

QFontComboBox组件属性

A、name:同上
B、font:同上
C、editable:用来获取或设置一个值,以确定ComboBox的编辑框是否可编辑,值为true时为可编辑,值为false时为只读
D、currentIndex:当前选项的索引
E、currentFont:当前字体
F、maxVisibleItems:ComboBox可见的最大项目数
G、maxCOunt:ComboBox的最大项目数

QFontComboBox组件常用成员函数

QFontComboBox::QFontComboBox(QWidget *parent = 0)
构造一个父对象为parent的Font ComboBox

QFont currentFont() const
返回当前选择的字体

示例代码:

#include "mainwindow.h"

#include 
#include
#include
#include
#include
int main(int argc, char* argv[])
{
	QApplication a(argc, argv);
	QWidget w;
	w.resize(200, 200);
	w.move(300, 300);
	QHBoxLayout lay(&w);
	QFontComboBox* fontcom = new QFontComboBox(&w);
	lay.addWidget(fontcom);
	QFont font = fontcom->currentFont();
	qDebug() << "当前字体:" << font;
	w.show();
	return a.exec();
}

效果:
QT基础教程5--输入组件_第2张图片

行编辑框QLineEdit

QLineEdit组件简介

QLineEdit组件行编辑是一种常用且比较容易掌握的控件,应用程序主要用它来接收输入文字信息。

QLineEdit组件属性

A、name:同上
B、text:同上
C、font:同上
D、ReadOnly:用来获取或设置一个值,该值指示文本框中的文本是否为只读,值为true时为只读,值为false为可读写

QLineEdit组件常用成员函数

QLineEidt::QLineEdit(QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent的LineEdit

QLineEdit::QLineEdit(const QString &contents,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent和内容为contents的LineEdit

void QLineEdit::clear()[virtual slot]
清除行编辑的内容

bool QLineEdit::isReadOnly()const
如果行编辑室只读则返回true,否则返回false

void QLineEdit::setReadOnly(bool)[virtual slot]
设置行编辑的读写属性

void QLineEdit::setText(const QString &)[virtual slot]
设置行编辑的文本

QString QLineEdit::text()const
返回行编辑的文本

示例代码:

/*行编辑框*/
//模拟登录场景
	QWidget w;
	w.resize(200, 200);
	w.move(300, 300);
	QHBoxLayout hlay1;
	QHBoxLayout hlay2;
	QHBoxLayout hlay3;
	QVBoxLayout vlay;
	QLineEdit edit1, edit2;
	QLabel label1("用户名:"), label2("密码:");
	QPushButton button1("登录"), button2("重置");
	QString truename = "pp", truepassword = "123456";
	hlay1.addWidget(&label1);
	hlay1.addWidget(&edit1);
	hlay2.addWidget(&label2);
	hlay2.addWidget(&edit2);
	hlay3.addWidget(&button1);
	hlay3.addWidget(&button2);
	vlay.addItem(&hlay1);
	vlay.addItem(&hlay2);
	vlay.addItem(&hlay3);
	w.setLayout(&vlay);
	//关联登陆按钮的点击消息和响应槽 这里的槽函数用的是Lambda表达式的形式
	QObject::connect(&button1, &QPushButton::clicked, [&]() {
		//获取两个编辑框的文本
		QString username = edit1.text();
		QString password = edit2.text();
		//校验登录结果 如果成功就弹出一个消息框提示登录成功 反之弹出一个消息框提示失败
		if (username == truename && password == truepassword) {
			QMessageBox::information(&w, "登录结果", "登录成功");
		}
		else {
			QMessageBox::warning(&w, "登录结果", "用户名或密码错误");
		}
		});
	//关联重置按钮的点击消息和槽函数 当点击之后将两个编辑框中的内容清空
	QObject::connect(&button2, &QPushButton::clicked, [&]() {
		//清空两个编辑框中的内容
		edit1.clear();
		edit2.clear();
		});

	w.show();

	return a.exec();

效果:
QT基础教程5--输入组件_第3张图片

文本编辑框QTextEdit

1、QTextEdit组件简介

QTextEdit文本编辑组件主要用于输入文本信息或显示文本信息,QTextEdit支持富文本,在文本处理软件如wps等这是非常重要的一个组件

QPlainTextEdit组件常用成员函数

1、文本设置函数
void setText(const QString & text) 根据内容区分显示网页或普通文本
void setHtml(const QString & text) 显示丰富的 HTML 网页文本
void setPlainText(const QString & text) 显示普通的无格式文本
void QTextEdit::insertHtml(const QString &text) void 在光标插入 HTML
void QTextEdit::insertPlainText(const QString &text) 在光标处插入文本
QTextEdit::paste() 将剪贴板的数据粘贴到光标处

2、文本自动换行
LineWrapMode lineWrapMode() const
void setLineWrapMode(LineWrapMode mode)

LineWrapMode 属性保存着自动换行模式。
LineWrapMode 有以下 4 个枚举值:

常量 数值 描述
QTextEdit::NoWrap 0 不自动换行
QTextEdit::WidgetWidth 1 根据控件大小自动换行
QTextEdit::FixedPixelWidth 2 根据设置的固定值换行,以像素为单位
QTextEdit::FixedColumnWidth 3 根据设置的固定值换行,以列为单位
文本显示默认是根据控件的宽度自动换行的,超出控件显示范围,会自动调用滚动条显示,可以通过拖动滚
动条查看文本。如果不想自动换行,可以设置 QTextEdit::NoWrap 属性。

3、设置自动换行的位置
int lineWrapColumnOrWidth() const //获取当前设置的换行位置
void setLineWrapColumnOrWidth(int w) //设置换行位置

4、获取显示的文本
QString QTextEdit::toPlainText() const //返回普通无格式文本
QString toHtml() const

5、文本所搜功能
bool QTextEdit::find(const QString & exp, QTextDocument::FindFlags options = 0)
bool QTextEdit::find(const QRegExp & exp, QTextDocument::FindFlags options = 0)
这是一个重载函数,第一个函数用于查找字符串,查找成功返回真,并且高亮查找到的字符串,查找失败返
回假。第二个函数用于匹配正则表达式,查找成功返回真,并且高亮查找到的文本字符串,查找失败返回假。
QTextDocument::FindFlags 是一个枚举常量,使用时需要加载#include 头文件:
常量 数值 描述
QTextDocument::FindBackward 向后搜索单词
QTextDocument::FindCaseSensitively 默认情况下搜索不区分大小写。指定这个选项可以更改支持区分大小写。
QTextDocument::FindWholeWords 只匹配完整的单词。

6、便捷的打印函数,可以将文本直接输出到打印机或者打印为PDF格式
void QTextEdit::print(QPagedPaintDevice *printer) const

7、设置QText插入的文本格式
bool acceptRichText() const
void setAcceptRichText(bool accept)
该属性默认为 true 表示支持插入富文本数据。比如:从粘贴等。当该属性设置为 false 的时候表示 QText 只
支持插入纯文本数据。

8、只读属性
bool isReadOnly() const
void setReadOnly(bool ro)
该属性默认为 false,设置为 true 表示 QText 文本只能读不能编辑。

9、设置Tab键宽度
int tabStopWidth() const;
void setTabStopWidth(int width);
默认宽度为 80 像素。相当于 8 个空格的宽度。

10、设置QText支持重做功能(Ctrl+z功能)
bool isUndoRedoEnabled() const
void setUndoRedoEnabled(bool enable)

11、设置用户与 QText 交互的属性
Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)

Qt::TextInteractionFlag 枚举值:
常量 描述
Qt::NoTextInteraction 不支持输入
Qt::TextSelectableByMouse 文本可以用鼠标选择并复制到剪贴板,使用上下文菜单或标准的键盘快捷键。
Qt::TextSelectableByKeyboard 显示文本光标。
Qt::LinksAccessibleByMouse 超链接可以突出显示并激活鼠标复制链接功能。
Qt::TextEditable 支持编辑
Qt::TextEditorInteraction 默认为一个文本编辑器。
Qt::TextBrowserInteraction 默认为一个文本查看器

12、设置文本光标的宽度
int cursorWidth() const;
void setCursorWidth(int width);
光标默认宽度为 1。

13、获取当前的行位置和列数量
QTextCursor QTextEdit::textCursor() const //获取当前光标的位置信息
void QTextEdit::setTextCursor(const QTextCursor &cursor) //设置光标的位置信息

获取当前行和列的位置示例:
QTextCursor cur=ui->textEdit->textCursor(); //获取当前光标位置
int colnum=cur.blockNumber();
int rownum=cur.columnNumber();

示例代码:

头文件:
#pragma once
#pragma execution_character_set("utf-8")
#include
class MyTextEdit :public QTextEdit
{//自定义文本编辑控件
	
public:
	MyTextEdit();
	//文本查找功能,返回查找的文本所在的行数
	int findText(QString text);
	//统计字符数量
	int getCharNum();
	//获取总页数
	int pagenum();
	//对文本分页,同时返回当前的所处的页码,这个函数作为滚动消息的槽函数
	int currentPage(int value);
};

-----------------------------------------------------------------
#pragma once
#pragma execution_character_set("utf-8")
#include 
#include "ui_EditTest1.h"
#include"MyTextEdit.h"
#include
#include
#include
#include
#include
#include
class EditTest1 : public QWidget
{
    Q_OBJECT

public:
    EditTest1(QWidget *parent = nullptr);
    ~EditTest1();
 
private:
    Ui::EditTest1Class ui;
    MyTextEdit* centralEdit;
    QLabel*pagenumLabel;//显示为 页面:当前页码/总页数
    QLabel*charnumLabel;//显示为 字数:xxxx
    QVBoxLayout* mainlay;//主布局
    QHBoxLayout* buttomlay;//底部水平布局 
    QWidget* topwidget;//顶部窗口
    QWidget* buttomwidget;//底部窗口
    QLineEdit* findedit;//查找输入框
    QPushButton* findbutton;//查找按钮
};


源文件:
#include"MyTextEdit.h"
#include
MyTextEdit::MyTextEdit()
{
	//换行模式设置为根据控件大小自动换行
	this->setLineWrapMode(QTextEdit::WidgetWidth);

}

int MyTextEdit::findText(QString targetText)
{
	QTextCursor cursor = this->textCursor();
	int lineNumber = -1; // 初始化行号为-1,表示未找到

	// 保存当前光标位置
	QTextCursor originalCursor = cursor;

	// 在整个文档中查找指定文本
	QTextCursor foundCursor = cursor.document()->find(targetText);
	if (!foundCursor.isNull()) {
		// 获取找到文本所在的行号
		lineNumber = foundCursor.blockNumber();
	}
	else {
		return -1;
	}
	// 恢复光标到原来的位置
	this->setTextCursor(originalCursor);
	return lineNumber;

}


int MyTextEdit::getCharNum()
{//获取当前文本编辑器中的字符数量
	QString text = this->toPlainText(); // 获取文本内容
	text = text.trimmed(); // 去除开头和结尾的空格
	int charCount = text.length(); // 获取字符数量
	return charCount;
}

int MyTextEdit::pagenum()
{
	int pageHeight = this->viewport()->height();  // 文本框可见区域的高度
	int contentHeight = this->document()->size().height(); // 文本内容的总高度
	int totalPages = contentHeight / pageHeight;  // 总页数
	return totalPages;
}
int MyTextEdit::currentPage(int value)
{
	int currentPage = 0; // 当前页码
	int pageHeight = this->viewport()->height();  // 文本框可见区域的高度
	int totalPages = pagenum();  // 总页数

	if (value == 0) {
		currentPage = 1;
	}
	else {
		currentPage = value / pageHeight + 1;  // 计算当前页码
	}
	return currentPage;
}
--------------------------------------------------------------------------------------------
#include "EditTest1.h"
#include
#include
EditTest1::EditTest1(QWidget* parent)
	: QWidget(parent)
{
	topwidget = new QWidget;
	buttomwidget = new QWidget;
	//将底部窗口的高度固定为37px
	buttomwidget->setFixedHeight(37);
	mainlay = new QVBoxLayout(this);
	pagenumLabel = new QLabel("页面:1/1");
	charnumLabel = new QLabel("字数:0");
	buttomlay = new QHBoxLayout(buttomwidget);
	findedit = new QLineEdit;
	findbutton = new QPushButton("查找");
	findedit->setFixedHeight(25);
	findbutton->setFixedHeight(25);
	buttomlay->addWidget(pagenumLabel);
	buttomlay->addWidget(charnumLabel);
	buttomlay->addWidget(findedit);
	buttomlay->addWidget(findbutton);
	buttomlay->setStretchFactor(pagenumLabel, 1);
	buttomlay->setStretchFactor(charnumLabel, 1);
	buttomlay->setStretchFactor(findedit, 1);
	buttomlay->setStretchFactor(findbutton, 1);


	centralEdit = new MyTextEdit;
	mainlay->addWidget(centralEdit);
	mainlay->addWidget(buttomwidget);
	connect(centralEdit->verticalScrollBar(), &QScrollBar::valueChanged, pagenumLabel, [this](int value)
		{
			pagenumLabel->setText("页面:"+QString::number(centralEdit->currentPage(value))+"/"
				+QString::number(centralEdit->pagenum()));
		});
	connect(centralEdit, &QTextEdit::textChanged, charnumLabel, [this]() {
		charnumLabel->setText("字数:"+QString::number(centralEdit->getCharNum()));
		}
	);
	connect(findbutton, &QPushButton::clicked, centralEdit, [this]() {
		QString message="查找内容第一次出现的位置在第:" + QString::number(
			centralEdit->findText(findedit->text())) + "行";
		QMessageBox::information(this,"提示:",message);
		});
}

EditTest1::~EditTest1()
{
	if (centralEdit != nullptr)
		delete centralEdit;
}
------------------------------------------------------------------------------------------------------------
#include "EditTest1.h"
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    EditTest1 editTest;
    editTest.resize(800, 800);
    editTest.move(500, 80);
    editTest.show();
    return a.exec();
}

效果:
QT基础教程5--输入组件_第4张图片

无格式文本编辑框QPlainTextEdit

1、QPlainTextEdit组件简介

QPlainTextEdit控件中文称作“文本编辑“,PlainTextEdit和TextEdit控件只是样式不同,可以通过设置属性来改变样式。

2、QPlainTextEdit组件常用成员函数

QPlainTextEdit::QPlainTextEdit(QWidget *parent = 0)

QPlainTextEdit::QPlainTextEdit(const QString &text,QWidget *parent = 0)
这个我没怎么用过就不给示例代码了

整数旋转框QSpinBox

1、QSpinBox简介

QSpinBox整数旋转框继承自QAbstractSpinBox,允许用户通过单击向上/向下按钮来增加/减少当前显示的值,也可以直接输入旋转框的值,如果值是直接输入选择框,一般需要按Enter键确认新值。

2、QSpinBox组件属性

QSpinBox组件属性设置选项
A、name:同上
B、font:同上
C、value:SpinBox默认值
D、lineStep;使用箭头来改变选择框的值的递增/递减量
E、minValue:SpinBox的最小值
F、maxValue:SpinBox的最大值
G、prefix:SpinBox的前缀字符串
H、Suffix:SpinBox的后缀字符串

3、QSpinBox组件常用成员函数

QSpinBox::QSpinBox(QWidget *parent = 0,const char *name = 0)

构造一个名称为name,父对象为parent的SpinBox
QSpinBox::QSpinBox(int intValue,int maxValue,int step = 1,QWidget *parent = 0,const char *name = 0)

构造一个名称为name,父对象为parent,最小值为minValue,最大值为maxValue和增/减量为step的SpinBox
void QSpinBox::stepDown()[virtural slot]

把旋转框的值减少一个lineStep,等同于单击向下按钮
void QSpinBox::stepUp()[virtual slot]

把旋转框的值增加一个lineStep,等于单击向上按钮
QString QSpinBox::text()const

返回旋转框的文本,包括前缀和后缀
int QSpinBox::value()const

返回旋转框的值
void QSpinBox::setValue(int value)[virtual slot]

设置旋转框的值
void QSpinBox::setLineStep(int)

设置旋转框的增/减量
void QSpinBox::setMaxValue(int)

设置旋转框的最大值
void QSpinBox::setMinValue(int)

设置旋转框的最小值
void QSpinBox::setPrefix(const QString &text)[virtual slot]

设置旋转框的前缀字符
void QSpinBox::setSuffix(const QString &text)[virtual slot]

设置旋转框的后缀字符
void valueChanged(int i)

void valueChanged(const QString & text)
信号

示例代码:

#include "editTest2.h"
#include 
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QSpinBox* spinbox = new QSpinBox(&w);
    spinbox->setSingleStep(2);
    spinbox->setRange(0, 100);       //设置变化范围
    spinbox->setSuffix("km");       //设置输出显示后缀
    spinbox->setPrefix("distance:");  //设置输出显示前缀
    spinbox->resize(200, 40);        //设置大小
    spinbox->setValue(50);          //设置初始值
    w.show();
 
    return a.exec();
}

效果:
QT基础教程5--输入组件_第5张图片

小数旋转框QDoubleSpinBox

1、QDoubleSpinBox组件简介

QDoubleSpinBox小数旋转框,继承自QSpinBox,可以表示小数,其他与QSpinBox功能相同

2、QDoubleSpinBox组件属性

QDoubleSpinBox组件属性设置选项

A、name:同上
B、font:同上
C、value:SpinBox默认值
D、lineStep:同上
E、minValue:同上
F、maxValue:同上
G、prefix:SpinBox的前缀字符
H、Suffix:SpinBox的后缀字符
I、decimals:SpinBox的小数位数

3、QDoubleSpinBox组件常用成员函数

QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = 0)
构造一个父对象为parent的Double SpinBox

示例代码:

#include "editTest2.h"
#include 
#include
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    /*整数旋转框*/
    //QSpinBox* spinbox = new QSpinBox(&w);
    //spinbox->setSingleStep(2);
    //spinbox->setRange(0, 100);       //设置变化范围
    //spinbox->setSuffix("km");       //设置输出显示后缀
    //spinbox->setPrefix("distance:");  //设置输出显示前缀
    //spinbox->resize(200, 40);        //设置大小
    //spinbox->setValue(50);          //设置初始值
    
    /*小数旋转框*/
    QDoubleSpinBox box(&w);
    box.setSingleStep(0.01);
    box.setRange(0, 100);
    box.setSuffix("kg");
    box.setPrefix("质量:");
    box.setValue(50);
    box.setAccelerated(true);//已知按着变化速度会加快

    w.show();
 
    return a.exec();
}

效果:
QT基础教程5--输入组件_第6张图片

时间编辑框QTimeEdit

1、QTimeEdit组件简介

QTimeEdit时间编辑框组件继承自  QDateTimeEdit,用来编辑和显示时间的组件。

2、QTimeEdit组件属性

QTimeEdit组件属性设置选项:
A、name:同上
B、font:设置文本框的字体
C、time:显示的日期
D、minValue:时间的最小值
E、maxValue:时间的最大值
F、display:设置时间显示格式

3、QTimeEdit组件常用成员函数
QTimeEdit::QTimeEdit(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的TimeEdit

QTimeEdit::QTimeEdit(const QTime &time,QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent,当前显示时间为time的TimeEdit

QTime QTimeEdit::time()const
返回TimeEdit控件Time的值

void QTimeEdit::setTime(const QTime &time)[virtural]
设置TimeEdit控件为Time的值time

void QTimeEdit::setHour(int h)[virtural protected]
设置TimeEdit控件Time的Hour为h,必须确保h为有效值

void QTimeEdit::setMinute(int m)[virtual protected]
设置TimeEdit控件Time的Minute为m,必须确保m为有效值

void QTimeEdit::setSecond(int s)[virtual protected]
设置TimeEdit控件Time的Second为s,必须确保s为有效值

示例代码:


#include "editTest2.h"
#include 
#include
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QTimeEdit timeEdit(&w);
    // 设置时间显示格式,包括小时、分钟和秒
    timeEdit.setDisplayFormat("hh:mm:ss");
    //将值设置为当前时间
    timeEdit.setTime(QTime::currentTime());
    //定义一个计时器
    QTimer timer;
    //时间间隔为1毫秒 每过一毫秒就会发出QTimer::timeout信号
    timer.start(1);
    //关联信号和槽 使得每过一毫秒就更新一下
    QObject::connect(&timer, &QTimer::timeout, &timeEdit, [&]() {
        timeEdit.setTime(QTime::currentTime());
        });
    w.resize(200, 200);
    w.move(400, 400);
    w.show();
    return a.exec();
}

效果:
QT基础教程5--输入组件_第7张图片

日期编辑框QDateEdit

1、QDateEdit组件简介

QDateEdit日期编辑框继承自  QDateTimeEdit,用于编辑和显示日期的组件

2、QDateEdit组件属性

QDateEdit组件属性设置选项:

A、name:同上
B、font:同上
C、date:显示的日期
D、minValue:日期的最小值
E、maxValue:日期的最大字画
F、order:设置日期显示格式,Qt提供的格式有YMD、YDM、DMY

3、QDateEdit组件常用成员函数

QDateEdit::QDateEdit(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的DateEdit

QDateEdit::QDateEdit(const QDate &date,QWidget *parent = 0,const char *name = 0)
构造一个名字为name,父对象为parent,当前显示日期为date的DateEdit,

QDate QDateEdit::date()const
返回DateEdit控件的Date值

void QDateEdit::setDate(const QDate &date)[virtual]
设置DateEdit控件Date的值为date

void QDateEdit::setDay(int day)[virtual protected]
设置DateEdit控件Date的Day为day,必须确保day为有效值

void QDateEdit::setMonth(int month)[virtual protected]
设置DateEdit控件Date的Month为month,必须确保month为有效值

void QDateEdit::setYear(int year)[virtual protected]
设置DateEdit控件Date的Year为year,必须确保year为有效值

示例代码:

#include "editTest2.h"
#include 
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    /*日期编辑框*/
    QDateEdit dateEdit(&w);
    dateEdit.setDate(QDate::currentDate());
    w.resize(200, 200);
    w.move(400, 400);
    w.show();
 
    return a.exec();
}

效果:
QT基础教程5--输入组件_第8张图片

表盘QDial

1、QDial组件简介

QDial表盘组件继承自 QAbstractSlider,可用来描述各式各样的仪表盘样式。

2、QDial组件属性

QDial组件属性设置选项
A、name:同上
B、font:同上
C、lineStep:表盘值的最小跨度
D、value:表盘的值
E、minValue:表盘的最小值
F、maxValue:表盘的最大值
G、notchTarget:表盘的刻度
H、notchesVisible:是否显示表盘刻度,值为true时显示,否则不显示

3、QDial组件常用成员函数

QDial::QDial(QWidget *parent = 0,cosnt char *name = 0,WFlags f = 0)
构造一个名称为name,父对象为parent的Dial

QDial::QDial(int minValue,int maxValue,int pageStep,int value,QWidget *parent = 0,cosnt char *name = 0
构造一个名称为name,父对象为parent,最大值为maxValue,最小值为minValue,步长为pageStep,值为value的Dial

void QDial::setValue(int v)[virtual slot]
设置仪表盘的值为v

int QDial::value()const
返回表盘的值

void QDial:: setNotchesVisible(bool visible)
设置表盘刻度是否可见

示例代码:

#include "editTest2.h"
#include 
#include
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    /*表盘*/
    QWidget w;
    QVBoxLayout* layout = new QVBoxLayout(&w);

   QDial* dial = new QDial(&w);

    // 设置控件样式
    dial->setStyleSheet("QDial { background-color: #f0f0f0; border-width: 2px; border-style: solid; border-radius: 6px; }"
        "QDial::handle { background-color: #00aaff; border-radius: 10px; }"
        "QDial::sub-page { background-color: #00aaff; }"
        "QDial::groove { background-color: none; }"
        "QDial::notch { width: 2px; height: 6px; background-color: #00aaff; margin-left: 1px; margin-right: 1px; }");
    // 设置范围和初始值
    dial->setRange(0, 100);
    dial->setValue(50);
    //设置刻度
    dial->setNotchTarget(10);
    //设置刻度可见
    dial->setNotchesVisible(true);
    // 将 QDial 控件居中对齐
    layout->addWidget(dial);
    layout->setAlignment(Qt::AlignCenter);
w.show();
    return a.exec();
}
# 日期编辑款

QT基础教程5--输入组件_第9张图片

日期时间编辑框QDateTimeEdit

1、QDateTimeEdit组件简介

QDateTimeEdit日期时间编辑框是一个用来编辑和显示日期和时间的组件,继承自 QAbstractSpinBox。

2、QDateTimeEdit组件属性

QDateTimeEdit组件属性设置选项:

A、name:同上
B、font:设置文本框的字体
C、datetime:显示的日期和时间

3、QDateTimeEdit主要成员函数

QDateTimeEdit(QWidget * parent = 0)

QDateTimeEdit(const QDateTime & datetime, QWidget * parent = 0)
QDateTimeEdit(const QDate & date, QWidget * parent = 0)
QDateTimeEdit(const QTime & time, QWidget * parent = 0)
构造函数

void dateChanged(const QDate & date) [signal]
void dateTimeChanged(const QDateTime & datetime) [signal]
void timeChanged(const QTime & time) [signal]
信号

Void s etDate(const QDate & date) [slot]
Void setDateTime(const QDateTime & dateTime) [slot]
Void setTime(const QTime & time) [slot]
设置值

void setDisplayFormat(const QString & format)
设置日期时间的显示格式

QDate date() const
QDateTime dateTime() const
QTime time() const

示例代码:

#include "editTest2.h"
#include 
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QDateTimeEdit datetimeEdit(&w);
    datetimeEdit.setDateTime(QDateTime::currentDateTime());
    w.resize(200, 200);
    w.move(400, 400);
    w.show();
    return a.exec();
}

QT基础教程5--输入组件_第10张图片

水平滚动条QScrollBar

1、QScrollBar组件简介

QScrollBar滚动条继承自 QAbstractSlider,提供垂直和水平的布局样式,滚动条可以使用户能够查看比窗口组件能显示较多的内容。

2、QScrollBar组件属性

QScrollBar组件属性设置选项
A、name:同上
B、font:设置滑动条上的字体
C、lineStep:滑动条的最小跨度
D、value:滑动条的值
E、minValue:滑动条的最小值
F、maxValue:滑动条的最大值
G、orientation:滑动条的布局方向,Qt提供Horizontal/Vertical两种

3、QScrollBar组件常用成员函数

QScrollBar::QScrollBar(QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent的ScrollBar

QScrollBar::QScrollBar(Orientation orientation,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent,布局为orientation的ScrollBar

void QAbstractSlider::setValue(int v)[slot]
设置该滚动条的值为v

int QAbstractSlider::value()const
返回滚动条的值

void QAbstractSlider:: setOrientation(Qt::Orientation)
设置滚动条的布局样式

示例代码:

#include "editTest2.h"
#include 
#include
#include
#include
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QScrollBar scrollbar(&w);
    QVBoxLayout* layout = new QVBoxLayout(&w);

    QTextEdit* textEdit = new QTextEdit(&w);

    // 创建垂直滚动条
    QScrollBar* scrollBar = new QScrollBar(Qt::Vertical, &w);

    // 设置范围和初始值
    scrollBar->setRange(0, 100);
    scrollBar->setValue(50);

    // 绑定滚动条和文本编辑框的信号槽
    QObject::connect(scrollBar, &QScrollBar::valueChanged, [textEdit](int value) {
        QFont font = textEdit->font();
        font.setPointSize(value);
        textEdit->setFont(font);
        });

    layout->addWidget(textEdit);
    layout->addWidget(scrollBar);
    w.show();


    return a.exec();
}

QT基础教程5--输入组件_第11张图片

水平滑动条QSlider

1、QSlider组件

QSlider滑动条继承自 QAbstractSlider,有Horizontal/Vertical Slider两种布局方式,两种滑动条布局样式之间可以相互转换,只需改变orientation属性即可。

2、QSlider组件属性

QSlider组件属性设置选项
A、name:同上
B、font:同上
C、lineStep:滑动条值的最小跨度
D、value:滑动条的值
E、minValue;滑动条的最小值
F、maxValue:滑动条的最大值
G、orientation:滑动条的布局方向,Qt提供Horizontal/Vertical Slider两种选择

3、QSlider组件常用成员函数

QSlider::QSlider(QWidget *parent,const char *name =0)
构造一个名称为name,父对象为parent的Slider

QSlider::QSlider(Qrientation orientation,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent,布局方向为orientation的Slider

QSlider::QSlider(int minValue,int maxValue,int pageStep,int value,Orientation orientation,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent,布局方向为orientation,最大值为maxValue,最小值为minValue,页步长为pageStep和值为value的Slider

void QSlider::setValue(int v)[virtual slot]
设置该滑动条的值为v

int QSlider::value()const
返回滑动条的值

示例代码:

  /*滑动条*/
    QWidget w;
    QSlider* slider = new QSlider(Qt::Horizontal, &w);
    slider->setMaximum(100);
    slider->setMinimum(0);
    slider->setValue(50);
    w.show();

演示效果:
QT基础教程5--输入组件_第12张图片

你可能感兴趣的:(QT基础教程,qt,开发语言,c++)