Qt QWidget中的组件 6.8

窗口的部件

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 ->资源文件名
    //资源文件中添加资源:右键资源文件->添加已有文件->找到自己的资源文件添加即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤独memories

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值