赞
踩
我们在学习Qt的时候,遇到不懂的地方,可以求助互联网,看教程书籍,也可以直接看Qt的帮助文档Assistant。Qt自带的帮助文档是Assistant软件,这可以从Qt的安装路径中找到,我的电脑里Qt的安装路径是E:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin,这里有个可执行文件assistant.exe。打开assistant.exe,如下图所示:
比如说,你想知道QLabel有哪些可用的方法,就在assistant里选择“索引”,然后输入QLabel,就可以搜索出QLabel的所有内容,如下图所示:
这里说明了QLabel类是The QLabel widget provides a text or image display的作用,需要包含#include <QLabel>头文件,在.pro中需要加入QT += widgets语句,QLabel继承了QFrame,然后列出了QLabel的属性、函数、信号和槽。
属性:
alignment : Qt::Alignment | scaledContents : bool |
hasSelectedText : const bool | selectedText : const QString |
indent : int | text : QString |
margin : int | textFormat : Qt::TextFormat |
openExternalLinks : bool | textInteractionFlags : Qt::TextInteractionFlags |
pixmap : QPixmap | wordWrap : bool |
函数:
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
virtual | ~QLabel() |
Qt::Alignment | alignment() const |
QWidget * | buddy() const |
bool | hasScaledContents() const |
bool | hasSelectedText() const |
int | indent() const |
int | margin() const |
QMovie * | movie() const |
bool | openExternalLinks() const |
const QPicture * | picture() const |
const QPixmap * | pixmap() const |
QString | selectedText() const |
int | selectionStart() const |
void | setAlignment(Qt::Alignment) |
void | setBuddy(QWidget *buddy) |
void | setIndent(int) |
void | setMargin(int) |
void | setOpenExternalLinks(bool open) |
void | setScaledContents(bool) |
void | setSelection(int start, int length) |
void | setTextFormat(Qt::TextFormat) |
void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
void | setWordWrap(bool on) |
QString | text() const |
Qt::TextFormat | textFormat() const |
Qt::TextInteractionFlags | textInteractionFlags() const |
bool | wordWrap() const |
重新实现的公有函数:
virtual int | heightForWidth(int w) const override |
virtual QSize | minimumSizeHint() const override |
virtual QSize | sizeHint() const override |
公有槽函数:
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 &) |
信号:
void | linkActivated(const QString &link) |
void | linkHovered(const QString &link) |
重新实现的保护函数:
virtual void | changeEvent(QEvent *ev) override |
virtual void | contextMenuEvent(QContextMenuEvent *ev) override |
virtual bool | event(QEvent *e) override |
virtual void | focusInEvent(QFocusEvent *ev) override |
virtual bool | focusNextPrevChild(bool next) override |
virtual void | focusOutEvent(QFocusEvent *ev) override |
virtual void | keyPressEvent(QKeyEvent *ev) override |
virtual void | mouseMoveEvent(QMouseEvent *ev) override |
virtual void | mousePressEvent(QMouseEvent *ev) override |
virtual void | mouseReleaseEvent(QMouseEvent *ev) override |
virtual void | paintEvent(QPaintEvent *) override |
之后,Assistant对QLabel进行了细节的描述:QLabel is used for displaying text or an image. No user interaction functionality is provided. The visual appearance of the label can be configured in various ways, and it can be used for specifying a focus mnemonic key for another widget.
文档还指出,QLabel能够包含以下的内容类型:
Plain text | |
Rich text | |
A pixmap | |
A movie | |
A number | 通过int或double来设置数字setNum(),会把数字转换成纯文本. |
Nothing | 类似空的纯文本,这是默认设置. 通过clear()可清除文本. |
后面就是对各种属性和函数的详细说明。对于QLabel,我们在用的时候主要使用void setText(const QString &)这个函数设置QLabel的文本,用于文本标签的显示。有时候还会用void setPixmap(const QPixmap &)或void setPicture(const QPicture &picture)函数设置QLabel的背景图像,QLabel就会呈现出图像。需要注意的是,QLabel本身没有鼠标点击事件,如果用户想要QLabel响应鼠标点击,需要自己实现一个类,继承QLabel,然后重写void mousePressEvent(QMouseEvent *ev)函数。当然,QLabel其它的一些事件函数都可以继承重写。
Qt公司贴心地把Assistant集成到了Qt Creator中,我们打开Qt Creator后,在软件界面的左侧会看到“帮助”按钮,点击之后会出现如下界面:
我们可以看到主页有很多入门讲解的文档,供初学者跟着步骤一步步学习使用Qt的各种工具、模块。我们来看看主页中有哪些帮助说明:
我们如果想了解某些内容,可以从以上目录中查找,然后直接查看相关教程。
假设我们在Qt Creator中写代码时,遇到了不熟悉的类型或控件,想了解它们的特性,就可以直接复制到帮助里索引查找。拿QString为例,我们在帮助中查找,就可以得到如下界面:
然后就尽情地查找QString的相关内容,关于QString所有的属性、方法、信号与槽都在这里了。
有了Assistant这个得力助手,让我们在开发Qt应用的过程中事半功倍!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。