Qt入门系列开发教程【基础控件篇】QLabel文本标签

举报
鱼酱 发表于 2022/02/25 08:48:19 2022/02/25
【摘要】 描述QLabel 用于显示文本或图像。 不提供用户交互功能。 标签的视觉外观可以通过多种方式进行配置,并且可以用于为另一个小部件指定焦点助记键。QLabel 可以包含以下任何内容类型Plain textPass:一个用setText()设置的字符串Rich textPass:一个包含富文本的setText().A pixmapPass: 一个 QPixmap 使用setPixmap()设置...

描述

QLabel 用于显示文本或图像。 不提供用户交互功能。 标签的视觉外观可以通过多种方式进行配置,并且可以用于为另一个小部件指定焦点助记键。
QLabel 可以包含以下任何内容类型

  • Plain textPass:一个用setText()设置的字符串
  • Rich textPass:一个包含富文本的setText().
  • A pixmapPass: 一个 QPixmap 使用setPixmap()设置.
  • A moviePass : QMovie 使用 setMovie(),可以播放gif
  • A numberPass setNum() 的 int 或 double,它将数字转换为纯文本。
    Nothing:与空的纯文本相同。 这是默认设置。 由 clear() 设置。

警告:当将 QString 传递给构造函数或调用 setText() 时,请确保清理您的输入,因为 QLabel 会尝试猜测它是将文本显示为纯文本还是富文本(HTML 4 标记的子集)。 您可能想显式调用 setTextFormat(),例如 如果您希望文本为纯格式但无法控制文本源(例如,当显示从 Web 加载的数据时)。
当使用这些功能中的任何一个更改内容时,任何以前的内容都会被清除。

默认情况下,标签显示左对齐、垂直居中的文本和图像,其中要显示的文本中的任何选项卡都会自动展开。 但是,可以通过多种方式调整和微调 QLabel 的外观。

可以使用 setAlignment() 和 setIndent() 调整 QLabel 小部件区域内内容的定位。 文本内容也可以使用 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 继承的属性和函数也可用于指定要用于任何给定标签的小部件框架。
QLabel 通常用作交互式小部件的标签。 为此,QLabel 提供了一种有用的机制来添加助记符(参见 QKeySequence),该助记符会将键盘焦点设置到另一个小部件(称为 QLabel 的“伙伴”)。 例如:

 QLineEdit *phoneEdit = new QLineEdit(this);
 QLabel *phoneLabel = new QLabel("&Phone:", this);
 phoneLabel->setBuddy(phoneEdit);

API

//对齐方式
 Qt::Alignment alignment() const
 //获取伙伴QWidget
 QWidget *buddy() const
//此属性保存标签是否将缩放其内容以填充所有可用空间。
 bool hasScaledContents() const
 //是否有被选中的文字
 bool hasSelectedText() const
 //此属性以像素为单位保存标签的文本缩进
 int indent() const
 int margin() const
 //GIF对象
 QMovie *movie() const
 //打开外链
 bool openExternalLinks() const
 //获取图片
 QPicture picture() const
 QPixmap pixmap() const
 QTextDocument::ResourceProvider resourceProvider() const
//选中的文字
 QString selectedText() const
 //返回对一个选中的索引
 int selectionStart() const
 //设置对齐方式
 void setAlignment(Qt::Alignment)
 //设置小伙伴
 void setBuddy(QWidget *buddy)
//此属性以像素为单位保存标签的文本缩进
 void setIndent(int)
 //此属性保存边距的宽度
 void setMargin(int)
 //是否开启a标签
 void setOpenExternalLinks(bool open)
 //设置此标签的富文本资源的提供者。
 void setResourceProvider(const QTextDocument::ResourceProvider &provider)
 //此属性保存标签是否将缩放其内容以填充所有可用空间。
 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
 //文本格式 文本、富文本、markdown
 Qt::TextFormat textFormat() const
//指定标签在显示文本时应如何与用户输入交互。
//如果标志包含 Qt::LinksAccessibleByKeyboard,则焦点策略也会自动设置为 //Qt::StrongFocus。 
//如果设置了 Qt::TextSelectableByKeyboard,则焦点策略设置Qt::ClickFocus。
//默认值为 Qt::LinksAccessibleByMouse。
 Qt::TextInteractionFlags textInteractionFlags() const
 //此属性包含标签的自动换行策略
 bool wordWrap() const
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。