窗口的部件
Buttons
QPushbutton
pushbutton:按钮
常用的信号,接口,方法
settext("")设置按钮上的文本
setgeometry()设置按钮的位置
QToolbutton
工具组件按钮,按下后可显示工具
seticon设置图标,settext设置按钮文本
btnToolButton->setIcon(QIcon("图片路径"))将按钮图标转换成图片
QPushbutton和QToolButton都是Qt中常用的按钮控件,它们的区别在于:
1. QPushbutton是普通的按钮控件,通常用于触发一些简单的操作,比如打开一个对话框、提交表单等。而QToolButton则是一种工具按钮,通常用于显示一组相关的操作,比如字体选择、颜色选择等。
2. QToolButton可以设置一个弹出菜单,当用户点击按钮时,会弹出一个菜单供用户选择操作。而QPushbutton没有这个功能。
3. QToolButton可以设置图标和文本的位置,比如图标在文本上方、下方、左侧或右侧。而QPushbutton只能设置图标和文本的位置关系。
总的来说,QPushbutton适用于简单的操作,而QToolButton适用于一组相关的操作,并且可以设置弹出菜单和图标位置等属性。
QCheckBox:
是Qt中的一个组件,用于表示一个带有选中状态的复选框。它通常与QPushButton等其他组件一起使用,以便在用户单击按钮时执行某些操作,并根据需要检查或取消选中复选框。
checkBox:一般与groupbox一起使用
一般的connect连接方式: connect(checkBox_1,SIGNAL(stateChanged(int)),this,SLOT(check_slots_1(int)));
按下按钮后,状态改变,可触发相应的槽函数接受状态改变产生的int,一般int会产生0和2,2表示成功按下,0表示取消按钮
void Widget::check_slots_1(int stat)
{
qDebug() << stat;
if(stat==2)
{
groupBox->setTitle(groupBox->title()+"A");
}
else
{
QString title = groupBox->title();//定义一个字符串获取groupbox的标题
title.remove("A");//利用QString中的删除某个字符的成员函数.remove() 删除"A"
groupBox->setTitle(title);//再设置标题
}
}
Item Widgets(Item-Based)
QListWidget
Qlistwidget类
QListWidget是一个控件,用于显示一个可滚动的列表,每个列表项都可以是一个QListWidgetItem对象。
QListWidgetItem类
是一个列表项的数据模型,它可以包含文本、图像、状态等数据,并且可以设置不同的属性,如字体、颜色、背景等。
listwidget:创建一个列表窗口,里面存放数据
添加数据:addItem()
listwidget->additem("aaa");//是竖着添加
listwidget->additem("bbb")
//listwidget添加带头像的列表项:
listwidget->addItem(new QListWidgetItem(QIcon("图片路径"),“aaaaa”));
其中QIcon只能添加ICON格式的图片
想从当前的list列表中拿走项目列:takeItem();
example:用 listWidgetItem举例
QListWidgetItem *temp = leftListWidget->takeItem(leftListWidget->currentRow())//将选中的item从当前列表中拿走
然后可以添加到另一个列表中:
rightListWidget->addItem(temp);//上面两个代码要通过按钮来实现
分类项目: sortItems()
listWidget->sortItem(Qt::AscendingOrder);
这行代码是用于对列表控件(QListWidget)中的项进行升序排序的。其中,sortItems() 是 QListWidget 类中的一个函数,用于对列表控件中的项进行排序。Qt::AscendingOrder 是一个枚举值,表示升序排序
listwidget->sortItems(Qt::DescendingOrder);//降序排列
Containers
QGroupBox:
是Qt框架中的一个类,它是一个容器控件,用于将一组相关的控件组合在一起,并为它们提供一个可选的标题。QGroupBox可以包含其他的QWidget控件,如QPushButton、QLineEdit等。它通常用于将一组相关的控件放在一个边框内,以便于用户识别和操作
QGroupBox *groupBox;
设置groupBox标题: setTitle()
配合check box选择题目
QFrame:
QFrame是Qt框架中的一个组件,它是QWidget的子类,用于创建一个矩形框架,可以用于显示一些简单的图形元素或者作为其他控件的容器。QFrame可以设置边框样式、背景颜色、阴影效果等属性,同时还可以设置自动填充背景、自动调整大小等特性。QFrame通常用于创建一些简单的界面元素,如分割线、边框、背景等。
QFrame *frame
自动填充背景: setAutoFillBackground()
frame->setAutoFillBackground(true);
利用调色板将背景颜色设置成红色: setPalette()
frame->setPalette(QPalette(Qt::red));//设置成默认的red
Input Widges
QcomboBox:
它是一个下拉列表框,可以让用户从预定义的选项中选择一个或多个选项。它通常用于用户界面中的表单或工具栏中,以提供一组选项供用户选择。
QcomboBox *comboBox
添加元素: addItem()
comboBox->addItem("成都");
comboBox->addItem("北京");
comboBox->addItem("上海");
用connect形设置成一旦调到相应的选项(当前下标的改变)即可触发不同的功能: connect(comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(comboBox_slots(QString)));
其中currentIndexChanged(QString)中的QString传输的是选项标题名称,定义一个槽函数来接收响应的标题字符串即可完成相应的操作
QLineEdit:
是Qt框架中的一个组件,用于显示和编辑单行文本。它可以用于接收用户输入,例如用户名、密码、搜索关键字等。QLineEdit还支持文本的自动补全、撤销、重做、剪切、复制、粘贴等操作。它是Qt中常用的基础组件之一。
QLineEdit *lineEdit
settext();设置行编辑器中初始化的内容
text();用户从行编辑器中输入内容,程序这边可以获取到,返回的文本是qstring类型
toint();字符串转int型数字
setMaxlength();设置最大长度
lineEdit->setMaxLength(10);//设置最大长度为10
setEchoMode(qlineedit::passward);
lineEdit->setEchoMode(QLineEdit::Password);//设置密码显示方式
EchoMode是Qt框架中的一个枚举类型,用于指定QLineEdit控件中输入字符的显示形式。具体来说,它包含以下四种形式:
1. Normal:正常显示输入的字符。
2. NoEcho:不显示输入的字符,用于输入敏感信息,如密码。
3. Password:显示输入的字符为固定的字符,如圆点或星号,用于输入密码。
QFontComboBox:
是一个Qt框架中的组件,它是一个下拉列表框,用于显示可用字体的列表,并允许用户选择一个字体。它可以用于让用户选择应用程序中使用的字体。QFontComboBox继承自QComboBox,因此它具有QComboBox的所有功能,如下拉列表框、信号和槽等
QFontComboBox *fontComboBox;
利用connect函数一旦字体选中就会触发信号,并发送选中的字体 connect(fontComboBox,SIGNAL(currentFontChanged(QFont),this,SLOT(fontComboBox_slots(QFont)));
void Widget::fontComboBox(QFont font)
{
font.setPointSize(18);//设置接收到的字体的大小为18
lineEdit->setFont(font);//将行编辑器中设置字体为接收到的字体
}
QFont是Qt框架中的一个组件,用于描述字体的属性,包括字体名称、字号、字形、字重、斜体等。它可以被用于QPainter、QLabel、QTextEdit等组件中,用于设置文本的字体属性。通过QFont可以实现文本的美化和个性化,使得应用程序的界面更加美观和易读。
QTextEdit:
是Qt框架中的一个组件,用于显示和编辑纯文本和富文本。它可以用于创建文本编辑器、日记、电子邮件客户端等应用程序。QTextEdit支持多种文本格式,包括HTML、RTF和纯文本。它还提供了一些常用的文本编辑功能,如剪切、复制、粘贴、撤销、重做、查找和替换等。
QTextEdit *textEdit
添加文本内容: append()
textEdit->append("ni hao");//append可以用来添加文本,但setText()只能在一行添加,第二次添加时会覆盖第一次添加的一行,其中ni hao后面会自动添加\n换行
textEdit->append("wo hao");
获取文本中的内容: document()->toPlainText()
`toPlainText()` 是 `QTextEdit` 类的一个成员函数,用于获取文本编辑器中的纯文本内容。它返回一个 `QString` 类型的对象,包含了文本编辑器中的所有纯文本内容。在调用 `toPlainText()` 函数之前,需要先获取到 `QTextEdit` 对象,然后通过 `document()` 函数获取到文档对象,最后调用 `toPlainText()` 函数即可。
textEdit->document()->toPlainText();
则打印出来的数据为: "ni hao\nwo hao\n"
在textEdit中获取光标所在的位置,其中textEdit一定要有数据,鼠标点击后才能得到
connect(textEdit,SIGNAL(cursorPositionChanged()),this,SLOT(cursorPosition_slots()));
void Widget::cursorPosition_slots()
{
int row = textEdit->textCursor().blockNumber();//获取文本光标中的行坐标
int column = textEdit->textCursor().columnNumber();//获取文本光标中的列坐标
qDebug() << row << ":" << column;
}
`textCursor()`是`QTextEdit`类的一个成员函数,用于获取当前文本编辑器的光标对象。`textCursor().blockNumber()`是获取当前光标所在的文本块的行号。
在这里,使用点运算符是因为`textCursor()`返回的是一个`QTextCursor`对象,而`blockNumber()`是`QTextCursor`类的一个成员函数,需要通过`QTextCursor`对象来调用。因此,需要使用点运算符来连接两个函数调用。
QSpinBox:
是Qt框架中的一个类,用于创建一个带有上下箭头的数字输入框,用户可以通过点击箭头或手动输入来改变数字的值。它是继承自QAbstractSpinBox类的,提供了一些额外的功能,如设置最大值、最小值、步长等。
QSpinBox *spinBox;
设置初始值从几开始: setValue();
spinBox->setValue(1);
一旦数字上下箭头发生改变,引起信号产生输出这个数字,并触发槽函数
connect(spinBox,SIGNAL(valueChanged(int),this,SLOT(spinBox_slots(int))));
void Widget::spinBox_slots(int num)
{
qDebug() << num ;
}
QSlider:
QSlider组件是Qt框架中的一个类,用于创建滑块控件。它继承自QAbstractSlider类,提供了一个水平或垂直的滑块,可以让用户通过拖动滑块来选择一个值。QSlider可以用于调整音量、亮度、进度等。
QSlider *qSlider;
设置滑动条方向: setOrientation();
qSlider->setOrientation(Qt::Horizontal);//设置水平的滑动条
设置滑动条滑动幅度: 最大幅度 setMaximum() 最小幅度 setMinimun();
qSlider->setMaximum(180);
qSlider->setMinimum(0);
一旦滑动条移动就会触发信号,信号传递的是一个数值,触发槽函数
connect(qSlider,SIGNAL(sliderMoved(int)),this,SLOT(qSlider_slots(int)));//滑块的当前位置
void Widget::qSlider_slots(int pos)
{
qDebug() << pos ;
}
Display Widgets
QLabel:
QLabel是Qt框架中的一个组件,用于显示文本或图像。它可以用于显示静态文本或动态文本,也可以用于显示图像。QLabel可以设置文本的字体、颜色、对齐方式等属性,也可以设置图像的大小、缩放方式等属性。QLabel通常用于用户界面中的标签、标题、图标等元素的显示
QLabel *label;
设置文本显示: setText();
设置图片显示:
QPixmap是Qt框架中的一个组件,用于在Qt应用程序中显示图像。它是一个基于设备无关的图像类,可以加载和显示各种格式的图像文件,如BMP、JPG、PNG等。QPixmap可以用于在QWidget、QLabel、QGraphicsPixmapItem等Qt组件中显示图像,也可以用于绘制图像到QPainter中。QPixmap还提供了一些方便的方法,如缩放、旋转、裁剪等,可以方便地对图像进行处理和操作。
Qpixmap pixmap;//区别与QIcon,QIcon只能设置ICON类型的图片
pixmap.load("图片路径");//加载图片
label->setPixmap(pixmap);//在label上显示图片
label->setScaledContents(true);//图片自适应
//资源文件的添加: 工程右键->添加新文件->Qt->Qt Resource File ->资源文件名
//资源文件中添加资源:右键资源文件->添加已有文件->找到自己的资源文件添加即可