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

Posted 鱼酱2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程基础控件篇QLabel文本标签相关的知识,希望对你有一定的参考价值。

描述

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

以上是关于Qt入门系列开发教程基础控件篇QLabel文本标签的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程基础控件篇QTextBrowser文本浏览控件

Qt入门系列开发教程基础控件篇QLineEdit输入框

Python Qt GUI设计:QLabel标签类(基础篇—11)

Qt入门系列开发教程基础控件篇小部件(所有控件的基类QWidget)

QT软件开发之基础控件--2.5.1 QLabel标签

Qt入门系列开发教程基础控件篇QProgressBar进度条