QLabel使用总结
- 一、QLabel 显示内容
- 二、注意事项
- 1. 格式注意
- 2. 不保留先前状态
- 3. 格式对齐
- 4. 伙伴焦点
- 三、信号和槽函数使用
- 1. 信号
- 2. 槽函数
- 总结:
QLabel 其实就是一个用来只读显示的简易控件。适合数据量很小的内容显示。
QLabel用于显示 文本或图像。 不提供用户交互功能。QLabel的视觉外观可以通过多种方式进行配置,并且可用于为另一个小组件指定焦点助记键。如果涉及到很多内容的显示,比如多文本的话,就最好用 QTextEdit来弄,或者其他QTextBrower 之类的。
- 像下面这种
一、QLabel 显示内容
支持内容 | 设置函数 |
---|---|
Plain Text 纯文本 | 通过 setText() 设置内容;用 text() 获取值 |
Rich Text 富文本 | 通过 setText() 设置内容;通过 setTextFormat() 设置富文本格式 |
PixMap 图片 | 通过 setPixmap() 设置图片 |
Movie 动画(gif格式) | 使用 setMovie() 设置动画 |
Number 数字(int、double) | 使用 setNumber() 自动把数字转换为字符串,有时候就可以不用自己转格式啦 |
二、注意事项
1. 格式注意
我们在使用 setText() 时, QLabel 会尝试猜测它是将文本显示为纯文本还是富文本(HTML 4 标记的子集)。但是效果不好,可能QLabel 的显示表现会和我们的想法不一致,所有我们最好显式调用 setTextFormat(),例如,如果您希望文本为纯格式可能就显示出 Web形式的数据。
2. 不保留先前状态
当使用任何这些功能更改内容时,将清除任何以前的内容。不会保留之前的状态的。清除内容使用 clear() 函数
3. 格式对齐
默认情况下,QLabel 会对 文本和图像 内容 左对齐、垂直居中显示,其中要显示的文本中的任何选项卡都会自动展开,我们也可以设置用 … 来表示放不下的内容。但是,QLabel的外观可以通过多种方式进行调整和微调。
内容在 QLabel 小部件区域中的位置可以使用 setAlignment() 和 setIndent() 进行调整。文本内容还可以使用 setWordWrap() 沿单词边界换行。例如,此代码设置一个下沉式效果,右下角有两行文本(两行都与标签右侧齐平):
QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
label->setText("first line\nsecond line");
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);
因为 QLabel 继承至 QFrame,所以 QFrame 的边框效果QLabel都可以设置。
4. 伙伴焦点
QLabel通常用作交互式小部件的标签。为此,QLabel提供了一种有用的机制来添加助记符(参见QKeySequence),该助记符将键盘焦点设置为其他小部件(称为QLabel的“伙伴”)。例如:
QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
QLabel *eidtLabel = new QLabel("&Edit:", this);
QPushButton * editButton = new QPushButton("EditBtn");
eidtLabel->setBuddy(editButton);
在此示例中,当用户按 Alt+P 时,键盘焦点将转移到标签的 Buddy(QLineEdit)。如果 Buddy 是一个按钮(继承自 QAbstractButton),按了 Alt + E 就触发助记符将模拟按钮单击。
- 在设置 text 的时候 加上 & 就可以使用 Alt + text的首字母触发这些功能。
三、信号和槽函数使用
1. 信号
// 这个要设置为可以打开链接
label->setOpenExternalLinks(true);
// 当用户点击了这个QLabel上的链接
void linkActivated(const QString &link)
//当鼠标了这个QLabel上的链接
void linkHovered(const QString &link)
2. 槽函数
//清空内容
void clear()
//设置动画
void setMovie(QMovie *movie)
//设置数字
void setNum(double num)
void setNum(int num)
//设置图片
void setPicture(const QPicture &picture)
void setPixmap(const QPixmap &)
//设置内容
void setText(const QString &)
总结:
QLabel 其实就是一个用来只读显示的简易控件。适合数据量很小的内容显示。
QLabel用于显示 文本或图像。不提供用户交互功能。QLabel的视觉外观可以通过多种方式进行配置,并且可用于为另一个小组件指定焦点助记键。如果涉及到很多内容的显示,比如多文本的话,就最好用 QTextEdit来弄,或者其他QTextBrower 之类的。