QT教程:基本控件及相关类的介绍和使用

一、QString类:

Qt提供了自己的字符串处理类,不用担心内存分配以及关于\0结尾的这些注意事项,QSting会自动对占用的内存进行扩充,链接非常的迅速

实例:
	QString str = "hello";
	str += "world";  //拼接字符串操作
	对象函数:
		str.append("hello"):在字符串末尾追加一个字符串,也是拼接动作
		str.setNum(数值):将数值转为字符串存放
		str.toLower():将字符串转为全小写并返回
		str.toUpper():将字符串转为全大写并返回
		str.mid(起始位置,截取个数):截取字符串,并返回,如果第二个参数省略,则默认截取到末尾为止
		str.startsWith("字符串"):返回str是否是以指定字符串打头
		str.endsWith("字符串"):返回str是否以指定字符串结尾
		str.left(数值):返回str从左开始的n个字符串
		str.right(数值):返回str从右开始的n个字符串
		str.isEmpty():返回字符串是否是一个空串
		str.replace(起始位置,个数,"替换的内容"):将str中指定位置的串替换掉
		str.toUtf8():将QString转为QByteArray对象返回
		注意:QByteArray对象与QString对象极为相似,只是QString是专门用来处理字符串的,能处理utf-8编码的所有字符
		而QByteArray只是单纯用来处理数据的,除了能处理ASCII编码字符,其它复杂编码不能处理
	    QByteArray转QString:QString str = QByteArray("hello");
	    str.split("分隔符"):将字符串以指定的分隔符分割为多个字串,返回一个QStringList

二、数据类型转换

以下方法是从QObject类上继承下来的:
str.toInt()
str.toLong()
str.toUint()
str.toFloat()
str.toShort()
str.toDouble()
str.toLongLong()
str.toStdString():转为c++的标准string类对象.c_str()可以获取到char *类型的数据
格式化用法:
	QString str = QString("%1 %2 %3").arg(1).arg(2.0).arg("hello")
	QString str.sprintf("%d %s", 10, "hello");

三、字符串列表

QStringList:是一个QString的集合类,可以保存多个字符串
	实例:
		QStringList strList;
		strList[下标]:通过下标的方式访问集合中的字符串
		strList << "串1" << "串2" << "串3" :将多个串追加到集合中
		strList.append("字符串"):将指定字符串追加到集合中
		strList.count():获取集合中字符串的总个数
		strList.insert(位置,"字符串"):向集合指定位置中插入一个字符串
		遍历:
			for(QString item : strList)
			{
				 //代码块		
			}		

四、QT常用基本控件(重要)

1、PushButton:按钮

它的基本方法如下:

font:字体调整
enable:是否可操作
geometry:设置初始位置和大小
cursor:当鼠标移动上去后要显示的形状
toolTip:鼠标移上去后的提示文本
styleSheet:为控件绑定的css样式
icon:图标,可以将图标提前添加入资源文件中
iconsize:图标的大小
text:显示的文本内容
信号:clicked,点击后触发
	  pressed,按钮按下后触发
	  released,按钮弹起时触发
	  优先级:pressed  》 released  》  clicked

2、LineEdit:单行文本框

它的基本方法如下:

text:文本框内容,后台通过setText()来设置
echoMode:Password,更改文本框为密码框
placeholderText:默认提示的内容
maxLength:限制输入的长度
	ui->单行文本框控件对象->setPlaceholderText("默认显示的内容"):设置默认显示的内容 
	ui->单行文本框控件对象->setEchoMode(QLineEdit::Password):更改文本框为密码框
信号:
	textChanged:当文本框内容改变时触发
	textEdited:当通过setText函数改变时触发
	cursorPositionChanged:当光标位置发生改变时
	returnPressed:当Return或Enter键被按下时触发

3、RadioButton:单选按钮

text:显示的文本内容
checked:是否被选中
	ui->单选按钮控件对象->setChecked(bool):设置按钮是否被选中
	ui->单选按钮控件对象->isChecked():获取按钮是否被选中
	默认情况下RadioButton在同一个界面中被分为了一组,所以只会有一个按钮能够被选中,可以通过GroupBox控件,将指定的按钮分为一组
信号:同pushButton

4、CheckBox:复选框

text:显示的文本内容
checked:是否被选中
同RadioButton,只是一个是单选,一个是多选
信号:stateChanged:复选框选中状态改变时触发
	其他同pushButton

5、CommandLinkButton:命令连接按钮

继承自pushButton,不同的是CommandLinkButton设计为扁平化的,可以显示两行文本内容,带有默认的icon

text:第一行标题内容
description:第二行描述文本内容

6、ListWidget:列表

右击编辑项目,可以添加每一项

currentRow:默认选中的项,-1表示不选中
常用后台属性方法:
	添加项:
		ui->列表控件->addItem("显示的文本内容");
		QListWidgetItem *item = new QListWidgetItem(QIcon("图标路径"),"显示文本");
		ui->列表控件->addItem(item);
		ui->列表控件->insertItem(row,"显示的文本内容");
		QListWidgetItem *item = new QListWidgetItem(QIcon("图标路径"),"显示文本");
		ui->列表控件->insertItem(row,item);
					
	删除项:
		ui->列表控件->clear() :清除所有项
		ui->列表控件->takeItem(row):删除指定行的项
	
	其他:
		ui->列表控件->count():获取项的总和
		ui->列表控件->currentRow():返回当前选中行的行号
		ui->列表控件->currentItem():返回当前选中项对象
	
	信号:
		1.currentItemChanged(QListWidgetItem current, QListWidgetItem previous)信号:
		当列表部件中的当前项发生变化时发射,带两个参数,分别表示当前选择项和在此之前的选择项。
					
		2.currentRowChanged(int currentRow)信号:
		当列表部件中的当前项发生变化时发射,带一个参数,currentRow表示当前项行号,如果没有当前项,其值为-13.currentTextChanged(str currentText):
		当列表部件中的当前项发生变化时发射,带一个参数,currentText为当前项对应文本。
					
		4.itemClicked(QListWidgetItem *item):
		当部件中的项被鼠标单击时发射该信号。
					
		5.itemDoubleClicked(QListWidgetItem *item):
		当部件中的项被鼠标双击时发射该信号。
					

7、TreeWidget:树状表

右击编辑项目,可以设置列名称,项目栏中可以添加一级节点、二级节点…

添加项:
	TreeWiget是整个控件,QTreeWigetItem是里面的每个节点项
	ui->树状表控件.setHeaderHidden(true);  //隐藏表头
				
	QTreeWidgetItem *item = new QTreeWidgetItem(QStringList()<<"第一列显示的文本"<<"第二列显示的文本");
	ui->树状表控件->addTopLevelItem(item):
	控件添加顶级节点
				
	ui->树状表控件->topLevelItem(索引):
	获取到指定索引的顶级Item,是一个QTreeWidgetItem对象
	ui->树状表控件->takeTopLevelItem(索引):
	移除指定索引的顶级item
	ui->树状表控件->currentItem():
	获取到当前选中的Item,若没有则为空,若有选中的返回一个QTreeWidgetItem对象
				
	QTreeWidgetItem对象有一个addChild(QTreeWidgetItem *)的方法用于添加其子节点
	child(索引):获取指定索引的子节点
	setExpanded(bool):是否展开节点
	takeChild(索引):移除指定索引的节点
	text(索引):获取到指定item的指定列的文本数据
	
信号:
	1.currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)信号:
	当列表部件中的当前项发生变化时发射,带两个参数,分别表示当前选择项和在此之前的选择项。
				
	2.itemExpanded(QTreeWidgetItem *current):
	选项展开时执行触发
					
	3.itemDoubleClicked(QTreeWidgetItem *current):
	当选项被双击时触发

8、TableWidget:表格

ui->表格控件->setRowCount(行数):设置表格的总行数
ui->表格控件->setColumnCount(列数):设置表格的列数
ui->表格控件->setHorizontalHeaderLabels(QStringList):根据QStringList指定的数据设置列标题名称
ui->表格控件->setVerticalHeaderLabels(QStringList):根据QStringList指定的数据设置行标题名称
ui->表格控件->setItem(,,new QTableWidgetItem("数据")):设置表中单元格的数据
ui->表格控件->setEditTriggers(QAbstractItemView::NoEditTriggers):禁止修改表中的数据
ui->表格控件->setSelectionBehavior(QAbstractItemView::SelectRows):选中方式为整行选中
ui->表格控件->verticalHeader()->setVisible(false):隐藏列表头
ui->表格控件->horizontalHeader()->setVisible(false):隐藏行表头
ui->表格控件->setCellWidget(,,控件对象):将一个控件对象添加进单元格中
ui->表格控件->item(,):获取到指定行列的单元格对象
ui->表格控件->item(,)->text():获取到指定行列中的数据
ui->表格控件->removeRow(行数):删除掉指定的行
ui->表格控件->currentRow():获取到选中行的索引
ui->表格控件->item(,)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter):

设置指定单元格中文本显示的对齐方式
	水平对齐:
		     Qt::AlignLeft:左对齐
			 Qt::AlignRight:右对齐
			 Qt::AlignHCenter:居中对齐
			 Qt::AlignJustify :在可用控件中对齐
					
	垂直对齐:	
			 Qt::AlignTop :上对齐
			 Qt::AlignBottom :下对齐
			 Qt::AlignVCenter :居中对齐
					
	若两个都要用就:Qt::AlignHCenter|Qt::AlignVCenter即可
			
			
ui->表格控件->setSpan(要合并的行,要合并的列, 合并的行数,合并的列数):合并单元格
ui->表格控件->setColumnWidth(,宽度):设置某列的宽度
ui->表格控件->setRowHeight(,高度):设置某行的高度
ui->表格控件->resizeColumnsToContents():设置列大小由内容决定
ui->表格控件->resizeRowsToContents():设置行大小由内容决定
			
信号:
	cellChanged(int row,int col):单元格改变时触发,会将触发的单元格索引传入
	cellClicked(int row,int col):单元格被单击时触发,会将触发的单元格索引传入
	cellDouble(int row,int col):单元格被双击时触发,会将触发的单元格索引传入

9、tabWidget:选项卡

ui->选项卡控件->setTabPosition(QTabWidget::North):设置标题的方向
				QTabWidget::North:北方
				QTabWidget::West:西方
				QTabWidget::South:南方
				QTabWidget::East:东方
				
ui->选项卡控件->addTab(new QWidget(this),QIcon("icon路径"),"选项卡名称"):添加新的选项卡
	第一个参数可以是新对象,也可以是一个新建的QWidget实例对象
			
ui->选项卡控件->clear():清除所有的选项卡
ui->选项卡控件->removeTab(索引):移除指定索引的选项卡
				
信号:
	currentChanged(int):当前选项更改时触发
	tabBarClicked(int):选项被点击时触发
	tabBarDoubleClicked(int):选项被双击时触发

10、comboBox:下拉框

ui->下拉框控件->addItem("显示文本",绑定的数据):添加选项到下拉框中
ui->下拉框控件->currentText():获取下拉框当前选中项的文本
ui->下拉框控件->currentData():获取下拉框当前选中项的数据
			
信号:
	currentIndexChanged(int index):当前下拉选项发生改变时触发

11、textEdit:富文本框

ui->富文本框控件->append("文本内容"):追加内容到文本框中
ui->富文本框控件->setAlignment(Qt::AlignRight):设置上一行文本内容的对齐方式
				Qt::AlignRight:右对齐
				Qt::AlignLeft:左对齐
				Qt::AlignCenter:居中对齐
ui->富文本框控件->setReadOnly(bool):是否只读
ui->富文本框控件->toPlainText():获取文本框中的内容

你可能感兴趣的:(QT,qt,开发语言,ui)