2.9 显示控件

作者: 223480235e8e | 来源:发表于2018-03-01 19:46 被阅读29次

我们的输入控件终于结束了,今天小豆君来介绍显示控件。

2.9.1 QLabel 标签控件

标签控件可以用来显示文本,富文本,图片,动态图。

QLabel通常用作交互式窗口的标签。QLabel提供了一个有用的机制来添加一个助记符,它将把键盘焦点设置在另一个控件上(称为QLabel的“伙伴”),这通过调用setBuddy()实现。

image.png

1 alignment:文字对齐方式。

这个属性已经在前面很多控件讲过了,这里就不赘述了。

默认为水平靠左,垂直居中。

2 hasSelectedText, selectedText:被选中的文字。

3 indent:缩进像素。

默认情况下,缩进是- 1。

4 margin:边距。

5 openExternalLinks:是否可以打开链接。

如果设置为true,将会调用QDesktopServices::openUrl()来打开链接。

如果设置为false,则会发出linkActivated信号。

6 pixmap:图片。

7 scaledContents:是否填充空间。

当启用后,如果标签显示一个图片,它将缩放图片以填充可用空间。

默认为false。

8 text:文本。

文本将被解释为纯文本或富文本,这取决于文本格式设置。默认设置是Qt::AutoText。

如果已经设置了好友,则从新文本中更新快捷键。

9 textFormat:文本格式。

  • Qt::PlainText:被解释为纯文本。
  • Qt::RichText:被解释为富文本(html)
  • Qt::AutoText:如果可以被解释成富文本,则解释为富文本,否则为纯文本。

10 textInteractionFlags:用户与标签的交互标识。

  • Qt::NoTextInteraction:不与用户交互。
  • Qt::TextSelectableByMouse:可以用鼠标选择,并使用上下文菜单或标准键盘快捷方式将其复制到剪贴板。
  • Qt::TextSelectableByKeyboard:将显示一个文本光标,可以用键盘上的光标键选择文本。
  • Qt::LinksAccessibleByMouse:链接可以被高亮显示并被鼠标激活。
  • Qt::LinksAccessibleByKeyboard:链接用tab选中,然后激活进入。
  • Qt::TextEditable:文本是完全可编辑的。
  • Qt::TextEditorInteraction:TextSelectableByMouse | TextSelectableByKeyboard | TextEditable
  • Qt::TextBrowserInteraction:TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard

11 wordWrap:是否可换行,默认为false

QLabel还可以使用setMovie()来加载动态图。例如:

QLabel label;
QMovie *movie = new QMovie("./wait.gif");
label.setMovie(movie);
movie->start();

2.9.2示例

新建GUI项目DisplayWidget,类名为DisplayWidget,继承子QWidget

ui界面

image.png

displaywidget.h

#ifndef DISPLAYWIDGET_H
#define DISPLAYWIDGET_H

#include <QWidget>

namespace Ui {
class DisplayWidget;
}

class DisplayWidget : public QWidget
{
    Q_OBJECT

public:
    explicit DisplayWidget(QWidget *parent = 0);
    ~DisplayWidget();

private slots:
    void on_lineEdit_editingFinished();
    void on_check_links_toggled(bool checked);
    void on_check_scaled_toggled(bool checked);
    void on_check_wordWrap_toggled(bool checked);
    void on_spin_indent_valueChanged(int arg1);
    void on_combo_format_currentIndexChanged(int index);

private:
    Ui::DisplayWidget *ui;
};

#endif // DISPLAYWIDGET_H

displaywidget.cpp

#include "displaywidget.h"
#include "ui_displaywidget.h"

DisplayWidget::DisplayWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::DisplayWidget)
{
    ui->setupUi(this);

    QStringList textList;
    textList << "PlainText" <<"RichText" << "AutoText";
    ui->combo_format->addItems(textList);
}

DisplayWidget::~DisplayWidget()
{
    delete ui;
}

void DisplayWidget::on_lineEdit_editingFinished()
{
    ui->label_display->setText(ui->lineEdit->text());
}

void DisplayWidget::on_check_links_toggled(bool checked)
{
    ui->label_display->setOpenExternalLinks(checked);
}

void DisplayWidget::on_check_scaled_toggled(bool checked)
{
    ui->label_display->setScaledContents(checked);
}

void DisplayWidget::on_check_wordWrap_toggled(bool checked)
{
    ui->label_display->setWordWrap(checked);
}

void DisplayWidget::on_spin_indent_valueChanged(int arg1)
{
    ui->label_display->setIndent(arg1);
}

void DisplayWidget::on_combo_format_currentIndexChanged(int index)
{
    ui->label_display->setTextFormat((Qt::TextFormat)index);
}

编译运行程序,

textFormat选择PlainText,在输入框中输入<a href='http://www.baidu.com'>百度</a>回车,将鼠标移动到右侧label上,看有什么变化。

textFormat选择RichText,将鼠标移动到右侧label上,看又有什么变化,点击文字,这时会触发linkActivated信号。

勾选openExternalLinks,再点击文字,此时不会触发linkActivated信号,但会调用QDesktopServices::openUrl()来打开网站。

好了,关于QLabel的内容讲到这里。

想要更多干货,请关注微信公众号:小豆君,只要关注,便可加入我的C++\Qt交流群一起学习。

相关文章

  • 2.9 显示控件

    我们的输入控件终于结束了,今天小豆君来介绍显示控件。 2.9.1 QLabel 标签控件 标签控件可以用来显示文本...

  • 所有UI控件显示不出来的原因

    我们创建一些UI控件时候,经常会遇到控件不显示。这里我为大家写出所有UI控件显示不出来原因,如果你遇到控件不显示,...

  • 2.6 容器控件(一)

    今天及后面几天,小豆君主要来讲一下Qt其它常用控件的用法。主要包括: 容器控件 按钮控件 输入控件 显示控件显示控...

  • Android中的Switch控件样式设置

    首先添加控件: 以下是该控件的常用属性:textOn:控件打开时显示的文字textOff:控件关闭时显示的文字th...

  • 收集一些Android常用的功能库(不定期更新)

    实现控件的各种阴影效果image.png 实时显示音乐播放频率的控件image.png 实时显示音乐播放频率的控件...

  • QQ粘性效果

    动画分析 当前控件既可以显示图片,有可以显示文字,那么我们就可以通过按钮来最为当前的控件. 当拖动控件,当前控件尺...

  • UI 之UILabel,UITextField,UIButton

    一. UILabel UILabel是显示文本的控件,能显示文字的控件. UILabel的创建过程与UIView的...

  • UMG中的TextBlock控件

    SImage是UE4里使用的基本的控件,属性如下图所示。 主要是显示文字的静态控件 Text 显示在控件上的文字 ...

  • Unity UGUI基础控件

    UGUI基础控件 Text控件 Text是用来显示文本的,在游戏界面当中显示文本大多数是用Text控件来实现的,T...

  • QT中将gbk字符转换为utf-8字符

    对于中文显示,由于QT默认采用UTF-8编码显示,若在控件中使用GBK类型的中文,则会显示乱码。 给Qt控件设置内...

网友评论

    本文标题:2.9 显示控件

    本文链接:https://www.haomeiwen.com/subject/hdjuoxtx.html