首先我们来了解一下Label的一些属性
| 属性 | 含义 |
| alignment | 保存QLabel控件中内容的对齐方式,默认情况下,QLabel控件中的内容保持左对齐和垂直居中。该属性的值可以通过调用alignment()方法获得,可以借助setAlignment()方法修改。 |
| text | 保存QLabel控件中的文本,如果QLabel控件中没有文本,则text的值为空字符串,该属性的值可以通过text()方法获得,可以借助setText()方法修改。 |
| pixmap | 保存QLabel 控件内显示的图片,如果控件内没有设置图片,pixmap 的值为0。该属性的值可以通过调用pixmap()方法获得,可以借助setPixmap()方法修改。 |
| selectedText | 保存QLabel控件中被选择了的文本,当没有文本被选择时,selectedText的值为空字符串。该属性的值可以通过调用selectedText()方法获得。 |
| hasSelectedText | 判断用户是否选择了QLabel控件内的部分文本,如果是则返回true,反之则返回false。默认情况下,该属性的值为false。 |
| indent | 保存QLabel控件内文本的缩进量,文本的缩进方向和alignment属性的值有关。该属性的值可以通过调用indent()方法获得,可以借助setIndent()方法修改。 |
| margin | 保存QLabel控件中内容与边框之间的距离(边距), margin的默认值为0。该属性的值可以通过调用margin()方法获得,可以借助setMargin()方法修改。 |
| wordWrap | 保存QLabel 控件内文本的换行策略。当该属性的值为true 时,控件内的文本会在必要时自动换行。默认情况下,控件内的文本是禁止自动换行的。该属性的值可以通过wordWrap()方法获得,可以借助setWordWrap()方法修改。 |
除了上表中提到了获取和修改属性值得成员方法外,下表给大家罗列了一些常用的操作QLabel控件的成员方法,它们有些定义在QLabel类内,有些是通过继承父类得到的:
| 成员方法 | 功能 |
| hide() | 隐藏文本框 |
| clear() | 清空QLabel控件内所有显示的内容。 |
| setToolTip(QString) | 设置信息提示,当用户的鼠标放在QLabel文本框上时会自动跳出文字。 |
| setToolTipDuration(int) | 设置提示信息出现的时间,单位是毫秒。硕 |
| setStyleSheet(QString) | 设置QLabel文本框的样式。 |
这里主要说明一下
设置标签中的字体大小 颜色
lab.setStyleSheet("QLabel{front:20;color:red;}");
设置标签上显示的内容(开始时显示百度 点一下标签显示网址)
lab.setText("<a href=\"www.baidu.com\">百度");
鼠标悬停在标签上1s 显示"点击显示url";
lab.setToolTip("点击显示url");
lab.setToolTipDuration(1000);//悬停1s
点击标签 显示网址
QObject::connect(&lab,&QLabel::linkActivated,&lab,&QLabel::setText);
接下来我们了解一下QPushButton的属性
| 属性 | 含义 |
| text | 保存按钮上要显示的文字。该属性的值可以通过text()方法获取,也可以通过setText(const QString &text)方法修改。 |
| icon | 保存按钮左侧要显示的图标。该属性的值可以通过icon()方法获取,也可以通过setlcon(const Qlcon &icon)方法修改。 |
| iconsize | 保存按钮左侧图标的尺寸。该属性的值可以通过iconSize()方法获取,也可以通过setlconSize(const QSize &size)方法修改。 |
| size | 保存按钮的尺寸。该属性的值可以通过size()方法获取,也可以通过resize(int w, int h)或者resize(const QSize &)方法修改。 |
| font | 保存按钮上文字的字体和大小。该属性的值可以通过font()方法获取,也可以通过setFont(const QFont &)方法修改。 |
| flat | 初始状态下,按钮是否显示边框。flat属性的默认值为flase,表示按钮带有边框。该属性的值可以通过isFlat()方法获取,也可以通过setFlat(bool)方法修改。 |
| enabled | 指定按钮是否可以被按下。该属性的默认值为true,表示按钮可以被按下,即按钮处于启用状态。当该属性的值为false 时,按钮将不能被点击,按钮处于禁用状态。该属性的值可以通过isEnabled()方法获取,也可以通过setEnabled(bool)方法进行修改。 |
| autoDefault | 当用户按下Enter回车键时,是否触发点击按钮的事件。当按钮的父窗口为QDialog窗口时,该属性的值为true;其它情况下,该属性的默认值为 false。该属性的值可以通过autoFault()方法获取,也可以通过setAutoFault(bool)方法修改。 |
他的信号和槽
| 信号函数 | 功能 |
| clicked() clicked(bool checked = false) | 用户点击按钮并释放(或者按下按钮对应的快捷键)后,触发此信号。 |
| pressed() | 用户按下按钮时会触发此信号。 |
| released() | 用户松开按钮时会触发此信号。 |
| 槽函数 | 功能 |
| click() | 单击指定的按钮。 |
| setlconSize() | 重新设置按钮上图片的尺寸。 |
| hide() | 隐藏按钮控件。 |
| setMenu(QMenu *menu) | 弹出与按钮关联的菜单。 |
这里我们实现了 通过控件信号之间的传递
QObject::connect(&but,&QPushButton::clicked,&lab,&QLabel::clear);
点击点击文字消失 百度消失
通过控件信号之间的传递
按文字消失按钮 去除文字按钮被点击 百度标签消失
QObject::connect(&but1,&QPushButton::clicked,&but,&QPushButton::clicked);
接下来 在介绍一下QLineEdit 控件
| 属性 | 含义 |
| text | 保存输入框中的文本。该属性的值可以通过text()方法获取,也可以通过setText(const QString &)方法修改。 |
| maxLength | 设置输入框中最多可以放置的文本长度。当文本长度超出最大限度后,超出部分将被丢弃。默认情况下,maxLength 的值为32767。该属性的值可以通过maxLength()函数获得,也可以通过setMaxLength(int)方法修改。 |
| placeholderText | 设置提示信息,例如当用户未选中输入框时,输入框中显示“请输入.….",而用户选中输入框时,"请输入..."随之消失。该属性的值可以通过placeholderText()方法获取,也可以通过setPlaceholderText(const QString &)方法修改。 |
| clearButtonEnabled | 当输入框中有文本时,输入框的右侧可以显示一个“一键清除"按钮。该属性的默认值为false,即输入框中不会自动显示清除按钮。该属性的值可以通过isClearButtonEnabled()方法获取,也可以通过setClearButtonEnabled(bool enable)方法修改。 |
| echoMode | 设定输入框中文本的显示样式,该属性的可选值有以下几个:QLineEdit::Normal:正常显示所输入的字符,此为默认选项。QLineEdit::NoEcho:不显示任何输入的字符,常用于密码类型的输入,且长度保密QLineEdit::Password:显示与平台相关的密码掩饰字符,而不是实际输入的字符。当用户重新点击输入框时,可以紧接着之前的文本继续输入。QLineEdit::PasswordEchoOnEdit:编辑时正常显示输入的字符,编辑完成后改为用密码掩饰字符显示。当用户重新点击输入框时,不能紧接着之前的文本继续输入。该属性的是可以通过echoMode()方法获取,也可以通过 |
| frame | 控制输入框的边框。默认情况下,输入框是带有边框的。该属性的值可以通过hasFrame()方法获取,也可以通过setFrame(bool)方法修改 |
| 成员方法 | 功能 |
| move(int x, int y) | 指定输入框位于父窗口中的位置。 |
| setValidator(const QValidator *v) | 限制输入框中的文本内容,比如输入框只包含整数。 |
| setReadOnly(bool) | 设置输入框是否进入只读状态。在只读状态下,用户仍可以采用粘贴、拖拽的方式向输入框中放置文本,但无法进行编辑。 |
| setAlignent(Qt::Alignment flag) | 设置输入框中输入文本的位置。 |
| 信号函数 | 功能 |
| textEdited(const QString &text) | 当用户编辑输入框中的文本时,此信号就会触发,text参数即为用户新编辑的文本。注意,当程序中试图通过setText()方法修改输入框中的文本时,不会触发此信号函数。 |
| textChanged(const QString&text) | 只要输入框中的文本内容发生变化,就会触发此信息。 |
| returnPressed() | 用户按下回车键时,会触发此信号。 |
| editingFinished() | 用户按下回车键,或者鼠标点击输入框外的其它位置时,会触发此信号。 |
| 槽函数 | 功能 |
| clear() | 清空文本框中的内容。 |
| setText(const QString &) | 重新指定文本框中的内容。 |
完整代码如下
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include<QDialog>
#include <QApplication>
#include<QLabel>
#include<QPushButton>
#include<QLineEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
// //QDialog dia;
// //dia.setModal(true);
// // setModal函数 参数为true dia被设置成模态 false 非模态
// QLabel lab(&w);
// //lab.setText("hello");
// //lab.show();
// lab.setGeometry(50,100,150,70);
// lab.setStyleSheet("QLabel{front:20;color:red;}");
// lab.setText("<a href=\"www.baidu.com\">百度");
// lab.setToolTip("点击显示url");
// lab.setToolTipDuration(1000);
// QObject::connect(&lab,&QLabel::linkActivated,&lab,&QLabel::setText);
// //dia.show();
// //dia.exec();
// //模态用 exec
// QPushButton but(&w);
// //创建一个按钮 按钮上写着"文字消失" 按下这个按钮后 显示"去除文字"的按钮消失
// QPushButton but1(&w);
// but.setText("去除文字");
// but.move(200,200);
// but.setDisabled(true);//让按钮不能按
// but.setEnabled(true);//让按钮能按
// but1.setText("按钮消失");
// //QObject::connect(&but1,&QPushButton::clicked,&but,&QPushButton::hide);
// //点击去除文字 显示"去除文字"的按钮消失
// QObject::connect(&but,&QPushButton::clicked,&lab,&QLabel::clear);
// //点击文字消失 百度消失
// //通过控件信号之间的传递
// //按文字消失按钮 标签消失
// QObject::connect(&but1,&QPushButton::clicked,&but,&QPushButton::clicked);
QLineEdit le(&w);
le.move(200,200);
le.setPlaceholderText("请输入...");
le.setClearButtonEnabled(true);
le.setEchoMode(QLineEdit::Password);
QLabel lab(&w);
QObject::connect(&le,&QLineEdit::textChanged,&lab,&QLabel::setText);
//lab.setText()
w.show();
return a.exec();
}
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->label->hide();
}
Widget::~Widget()
{
delete ui;
}
4242

被折叠的 条评论
为什么被折叠?



