Qlabel 类
Detailed Description – 内容描述
QLabel用于显示文本或图像。 没有提供用户交互功能。 标签的视觉外观可以通过各种方式进行配置,并且可以用于为另一个窗口小部件指定焦点助记键。
QLabel可以包含以下任何内容类型:
目录 Setting
Plain text 将QString传递给setText()。
Rich text 将包含rich text的QString传递给setText()。
A pixmap 将QPixmap传递给setPixmap()。
A movie 将QMovie传递给setMovie()。
A number 将int或double传递给setNum(),它将数字转换为plain text。
Nothing 与空的plain text相同。 这是默认值。 由clear()设置。
警告:将QString传递给构造函数或调用setText()时,请确保清理输入内容,因为QLabel试图猜测它是将文本显示为纯文本还是富文本(HTML 4标记的子集)。 您可能需要显式调用setTextFormat(),例如 如果您希望文本为纯格式,但无法控制文本源(例如,当显示从Web加载的数据时)。
使用这些功能中的任何一个更改内容时,将清除以前的所有内容。
默认情况下,标签显示左对齐,垂直居中的文本和图像,其中要显示的文本中的所有选项卡都会自动展开。 但是,QLabel的外观可以通过几种方式进行调整和微调。
可以使用setAlignment()和setIndent()来调整QLabel小部件区域内内容的位置。 文本内容还可以使用setWordWrap()沿单词边界换行。 例如,此代码设置了一个下沉的面板,该面板的右下角有两行文本(两行与标签的右侧齐平):

QLabel从QFrame继承的属性和函数也可以用于指定要用于任何给定标签的小部件框架。
QLabel通常用作交互式窗口小部件的标签。 对于此用途,QLabel提供了一种有用的机制来添加助记符(请参阅QKeySequence),该助记符会将键盘焦点设置到另一个小部件(称为QLabel的“伙伴”)。 例如:

在此示例中,当用户按下Alt + P时,键盘焦点转移到了标签的好友(QLineEdit)。 如果好友是按钮(从QAbstractButton继承),则触发助记符将模拟按钮单击。
另请参见QLineEdit,QTextEdit,QPixmap,QMovie和GUI Design Handbook:Label

Properties – 属性
Alignment : Qt::Alignment
此属性保留标签内容的对齐方式
默认情况下,标签的内容是左对齐和垂直居中的。
访问函数:
Qt::Alignment alignment() const
void setAlignment(Qt::Alignment)
请参见文本

hasSelectedText:const bool
此属性保存是否选择了任何文本
如果用户选择了部分或全部文本,则hasSelectedText()返回true;否则,返回true。 否则返回false。

默认情况下,此属性为false。

注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。

此属性在Qt 4.7中引入。
访问函数:
bool hasSelectedText() const
另请参见selectedText()。

Indent : int
此属性以像素为单位保留标签的文本缩进

如果标签显示文本,则如果alignment()为Qt :: AlignLeft,则缩进将应用于左侧;如果alignment()为Qt :: AlignRight,则缩进至右侧;如果alignment()为Qt :: AlignTop,则缩进至顶部 ,如果alignment()为Qt :: AlignBottom,则返回到底部边缘。

如果缩进为负,或者未设置缩进,则标签将按以下方式计算有效缩进:如果frameWidth()为0,则有效缩进为0。如果frameWidth()大于0,则有效缩进为一半。 小部件当前font()的“ x”字符的宽度。

默认情况下,缩进为-1,表示有效缩进是以上述方式计算的。
访问函数:
int indent() const
void setIndent(int)
另请参见alignment,margin,frameWidth()和font()。

Indent : int
此属性保存边距的宽度
边距是帧的最内像素和内容的最外像素之间的距离。
默认边距为0。
访问函数:
int margin() const
void setMargin(int)
另请参见indent

openExternalLinks : bool
指定QLabel是否应该使用QDesktopServices :: openUrl()自动打开链接,而不是发出linkActivated()信号。

注意:标签上设置的textInteractionFlags必须包含LinksAccessibleByMouse或LinksAccessibleByKeyboard。

默认值为false。

此属性在Qt 4.2中引入。
访问函数:
bool openExternalLinks() const
void setOpenExternalLinks(bool open)

Pixmap : QPixmap
此属性保存标签的像素图
如果未设置像素图,则将返回nullptr。
设置像素图会清除以前的所有内容。 好友快捷方式(如果有)被禁用。
访问函数:
const Qpixmap * pixmap() const
void setPixmap(const Qpixmap &)

scaledContents : bool
此属性保存标签是否将缩放其内容以填充所有可用空间。
启用后,标签会显示一个像素图,它将缩放该像素图以填充可用空间。
此属性的默认值为false。
访问函数:
bool hasScaledContents() const
void setScaledContents(bool)

selectedText : const QString
此属性保存所选文本
如果没有选择的文本,则此属性的值为空字符串。
默认情况下,此属性包含一个空字符串。
注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。
此属性在Qt 4.7中引入。
访问函数:
QString selectedText() const
另请参见hasSelectedText()。

Text : QString
此属性保存标签的文本

如果未设置任何文本,则将返回一个空字符串。 设置文本会清除所有以前的内容。

根据文本格式设置,文本将被解释为纯文本还是富文本。 请参见setTextFormat()。 默认设置为Qt :: AutoText; 即QLabel将尝试自动检测文本集的格式。 有关富文本的定义,请参见支持的HTML子集。

如果已设置好友,则从新文本更新好友助记键。

请注意,QLabel非常适合显示小型RTF文档,例如从标签的调色板和字体属性中获取其文档特定设置(字体,文本颜色,链接颜色)的小型文档。 对于大型文档,请改为以只读模式使用QTextEdit。 QTextEdit还可在必要时提供滚动条。

注意:如果文本包含格式文本,此功能将启用鼠标跟踪。
访问函数:
QString text() const
void setText(const QString &)

TextFormat : Qt::TextFormat
此属性保存标签的文本格式
有关可能选项的说明,请参见Qt :: TextFormat枚举。
默认格式为Qt :: AutoText。
访问函数:
Qt::TextFormat textFormat(const)
void setTextFormat(Qt::TextFormat)

TextInteractionFlags : Qt::TextInteractionFlags
指定标签显示文本时应如何与用户输入交互。

如果标志包含Qt :: LinksAccessibleByKeyboard,则焦点策略也会自动设置为Qt :: StrongFocus。 如果设置了Qt :: TextSelectableByKeyboard,则将焦点策略设置为Qt :: ClickFocus。

默认值为Qt :: LinksAccessibleByMouse。
此属性在Qt 4.2中引入。
访问函数:
Qt::TextInteractionFlags textInteractionFlag() const
void setTextInteractionFlags(Qt::TextInteracyionFlags flags)

wordWrap : bool
此属性保存标签的自动换行策略
如果此属性为true,则在断字时在必要时将标签文本包装起来; 否则,它根本不会被包装。
默认情况下,自动换行被禁用。

访问函数:
bool wordWrap() const
void setWordWrap(cool on)

Public Functions – 公共函数
QLabel::QLabel(const QString &text, QWidget *parent =nullptr, Qt::WindowFlags f = Qt::WindowFlags())
构造一个显示文本的标签。
父项和小部件标志f,参数将传递给QFrame构造函数。
另请参见setText(),setAlignment(),setFrameStyle()和setIndent()。

QLabel::QLabel(QWidget *parent =nullptr, Qt::WindowFlags f =Qt::WindowFlags())
构造一个空标签。
父项和小部件标志f,参数将传递给QFrame构造函数。
另请参见setAlignment(),setFrameStyle()和setIndent()。

QLabel::~QLabel()
销毁标签。

QWidget *QLabel::buddy() const
返回此标签的好友,如果当前未设置好友,则返回nullptr。
另请参见setBuddy()。
QMovie *QLabel::movie() const
返回指向标签的影片的指针;如果未设置影片,则返回nullptr。
另请参见setMovie()。

const QPicture *QLabel::picture() const
返回标签的图片;如果标签没有图片,则返回nullptr。
另请参见setPicture()。

int QLabel::selectionStart() const
selectionStart()返回标签中第一个选定字符的索引;如果未选择任何文本,则返回-1。

注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。

此功能在Qt 4.7中引入。
另请参见selectedText()。

void QLabel::setBuddy(QWidget *buddy)
将此标签的好友设置为好友。

当用户按下此标签指示的快捷键时,键盘焦点将转移到标签的好友小部件。

伙伴机制仅适用于QLabel,该QLabel包含文本,该文本的一个字符前面带有“&”符号。 该字符被设置为快捷键。 有关详细信息,请参见QKeySequence :: mnemonic()文档(要显示实际的与号,请使用’&&’)。

在对话框中,您可能会创建两个数据输入小部件和一个标签,然后设置几何布局,以便每个标签位于其数据输入小部件(“伙伴”)的左侧,例如:

使用上面的代码,当用户按下Alt + N时,焦点跳到“名称”字段,而当用户按下Alt + P时,焦点跳到“电话”字段。

要取消设置先前设置的好友,请在将好友设置为nullptr的情况下调用此函数。

另请参见buddy(),setText(),QShortcut和setAlignment()。

void QLabel::setSelection(int start, int length)
从位置开始和长度字符中选择文本。

注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。

此功能在Qt 4.7中引入。
另请参见selectedText()。

Public Slots – 公共插槽

void QLabel::clear()
清除所有标签内容。

void QLabel::setMovie(QMovie *movie)
将标签内容设置为movie。 以前的所有内容都将被清除。 标签不拥有电影的所有权。
好友快捷方式(如果有)被禁用。
另请参见movie()和setBuddy()。

void QLabel::setNum(double num)
这是一个过载功能。
将标签内容设置为包含double num文本表示形式的纯文本。 以前的所有内容都将被清除。 如果double的字符串表示形式与标签的当前内容相同,则不执行任何操作。

好友快捷方式(如果有)被禁用。
另请参见setText(),QString :: setNum()和setBuddy()。

void QLabel::setNum(int num)
将标签内容设置为包含整数num的文本表示形式的纯文本。 以前的所有内容都将被清除。 如果整数的字符串表示形式与标签的当前内容相同,则不执行任何操作。

好友快捷方式(如果有)被禁用。
另请参见setText(),QString :: setNum()和setBuddy()。

void QLabel::setPicture(const QPicture &picture)
将标签内容设置为picture。 以前的所有内容都将被清除。
好友快捷方式(如果有)被禁用。
另请参见picture()和setBuddy()。

Reimplemented Protected Functions
void QLabel::changeEvent(QEvent *ev)
重载函数:QFrame :: changeEvent(QEvent * ev)。

void QLabel::contextMenuEvent(QContextMenuEvent *ev)
重载函数:QWidget :: contextMenuEvent(QContextMenuEvent * event)。

bool QLabel::event(QEvent *e)
重载函数:QFrame :: event(QEvent * e)。

void QLabel::focusInEvent(QFocusEvent *ev)
重载函数:QWidget :: focusInEvent(QFocusEvent * event)。

bool QLabel::focusNextPrevChild(bool next)
重载函数:QWidget :: focusNextPrevChild(bool next)。

void QLabel::keyPressEvent(QKeyEvent *ev)
重载函数:QWidget :: keyPressEvent(QKeyEvent * event)。

void QLabel::mouseMoveEvent(QMouseEvent *ev)
重载函数:QWidget :: mouseMoveEvent(QMouseEvent * event)。

void QLabel::mousePressEvent(QMouseEvent *ev)
重载函数:QWidget :: mousePressEvent(QMouseEvent * event)。

void QLabel::mouseReleaseEvent(QMouseEvent *ev)
重载函数:QWidget :: mouseReleaseEvent(QMouseEvent * event)。

void QLabel::paintEvent(QPaintEvent *)
重载函数:QFrame :: paintEvent(QPaintEvent *)。

void QLabel::focusOutEvent(QFocusEvent *ev)
重载函数:QWidget :: focusOutEvent(QFocusEvent * event)。

Reimplemented Public Functions
int QLabel::heightForWidth(int w) const
重载函数:QWidget :: heightForWidth(int w)常量。

QSize QLabel::minimumSizeHint() const
重新实现属性的访问功能:QWidget :: minimumSizeHint。

QSize QLabel::sizeHint() const
重载函数:QFrame :: sizeHint()常量。

Leave a Comment