今天在QLabel里面放了QPixmap的图片,把label和textEdit加到QSplitter里面,发现拖动中间的线,图片可以拉大但是不能缩小。还是比较全面的看一下文档比较好。
QLabel窗口提供了一个文本或者图片的展示
QLabel被用于显示文本或者图片,没有提供用户交互功能。标签的可视外观可以通过多种方式配置,还可以用于为另一个小部件指定焦点助记键。
QLabel可以包含下面的这些内容:
Content Setting
Plain text (纯文本) Pass a QString to setText().
Rich text (富文本) Pass a QString that contains rich text to setText().
A pixmap (图片) Pass a QPixmap to setPixmap().
A movie (小电影) Pass a QMovie to setMovie().
A number (数) Pass an int or a double to setNum(), which converts the number to plain text.
Nothing (啥没有) The same as an empty plain text. This is the default. Set by clear().
警告:在将QString传递给构造函数或调用setText()时,请确保对输入进行清理,因为QLabel试图猜测它是将文本显示为纯文本还是富文本(HTML 4标记的子集)。您可能想要显式地调用setTextFormat(),例如,如果您希望文本是纯格式的,但是无法控制文本源(例如,在显示从Web加载的数据时)。
当使用这些函数更改内容时,将清除以前的任何内容。
默认情况下,标签会显示左对齐、垂直居中的文本和图像,其中要显示的文本中的任何选项卡都会自动展开。然而,QLabel的外观可以通过多种方式进行调整和微调。
可以使用setal()和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); //右下角,右边对其
继承自QFrame的属性和函数QLabel还可用于指定用于任何给定标签的小部件框架。
QLabel通常用作交互式小部件的标签。为此,QLabel提供了一种添加助记符(参见QKeySequence)的有用机制,该助记符将键盘焦点设置为另一个小部件(称为QLabel的“buddy”)。例如:
QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit); //因为Qlabe就是一个标签,所以可以作为它所标记的空间的助记伙伴
在本例中,当用户按下Alt+P时,键盘焦点被转移到标签的好友(QLineEdit)。如果好友是按钮(继承自QAbstractButton),触发助记符将模拟按钮单击。
alignment : Qt::Alignment //对齐
This property holds the alignment of the label's contents
By default, the contents of the label are left-aligned and vertically-centered. //默认左对齐,纵向居中对齐
hasSelectedText : const bool //是否有文字被选中
This property holds whether there is any text selected
hasSelectedText() returns true if some or all of the text has been selected by the user; otherwise returns false.
By default, this property is false. /默认否
Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.
indent : int //缩进
此属性保存标签的文本缩进(以像素为单位)
如果标签显示文本,则缩进适用于alignment()是Qt::AlignLeft则相对于左边界,对右对齐()是Qt::AlignRight,对上对齐()是Qt::AlignTop,对下对齐()是Qt::AlignBottom。
如果缩进是负数,或者没有设置缩进,那么标签按如下方式计算有效缩进:如果frameWidth()为0,则有效缩进为0。如果frameWidth()大于0,则有效缩进为小部件当前字体()的“x”字符宽度的一半。
默认情况下,缩进是-1,这意味着按照上面描述的方式计算有效的缩进。
margin : int
此属性保存页边距的宽度
边距是指框架最内层像素与内容最外层像素之间的距离。
默认为0。
openExternalLinks : bool
指定QLabel是否应该使用QDesktopServices::openUrl()自动打开链接,而不是发出linkActivated()信号。
注意:标签上设置的textInteractionFlags需要包括LinksAccessibleByMouse或LinksAccessibleByKeyboard。
默认值为false。
pixmap : QPixmap
This property holds the label's pixmap
If no pixmap has been set this will return 0.
Setting the pixmap clears any previous content. The buddy shortcut, if any, is disabled.
scaledContents : bool //这是个挺有用的属性
此属性保存标签是否会缩放其内容以填充所有可用空间。
当启用时,标签显示一个像素图,它将缩放像素图来填充可用空间。
此属性的默认值为false。
selectedText : const QString
This property holds the selected text
If there is no selected text this property's value is an empty string.
By default, this property contains an empty string.
Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.
text : QString
This property holds the label's text
If no text has been set this will return an empty string. Setting the text clears any previous content.
根据文本格式设置,文本将被解释为纯文本或富文本;看到setTextFormat ()。默认设置是Qt::AutoText;例如,QLabel将尝试自动检测文本集的格式。有关富文本的定义,请参阅受支持的HTML子集。
If a buddy has been set, the buddy mnemonic key is updated from the new text.
请注意,QLabel非常适合显示小型富文本文档,比如从标签的调色板和字体属性获得文档特定设置(字体、文本颜色、链接颜色)的小型文档。对于大型文档,使用QTextEdit的只读模式。QTextEdit还可以在必要时提供滚动条。
textFormat : Qt::TextFormat
此属性保存标签的文本格式
textInteractionFlags : Qt::TextInteractionFlags
指定标签在显示文本时应如何与用户输入交互。
如果标记包含Qt::LinksAccessibleByKeyboard,则焦点策略也会自动设置为Qt::StrongFocus。如果Qt::TextSelectableByKeyboard被设置,那么焦点策略被设置为Qt::ClickFocus。
默认值是Qt::LinksAccessibleByMouse。
wordWrap : bool
此属性保存标签的换行策略
如果此属性为真,则在必要的断句处对标签文本进行换行;否则它根本就不会换行。
默认情况下,自动换行是禁用的。
//两个构造
QLabel::QLabel(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
QLabel::QLabel(const QString &text, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
//返回伙伴
QWidget *QLabel::buddy() const
[virtual protected] void QLabel::changeEvent(QEvent *ev)
Reimplemented from QWidget::changeEvent().
[slot] void QLabel::clear() //清除内容
[signal] void QLabel::linkActivated(const QString &link)
[signal] void QLabel::linkHovered(const QString &link)
QSize QLabel::minimumSizeHint() const //推荐最小尺寸
QMovie *QLabel::movie() const //返回小电影
const QPicture *QLabel::picture() const //返回图片
int QLabel::selectionStart() const //selectionStart() returns the index of the first selected character in the label or -1 if no text is selected.
//注意 Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard. 要设置能否选中
void QLabel::setBuddy(QWidget *buddy) //设置伙伴
QLineEdit *nameEdit = new QLineEdit(this);
QLabel *nameLabel = new QLabel("&Name:", this);
nameLabel->setBuddy(nameEdit);
QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
// (layout setup not shown)
[slot] void QLabel::setMovie(QMovie *movie) //放电影
Sets the label contents to movie. Any previous content is cleared. The label does NOT take ownership of the movie.
The buddy shortcut, if any, is disabled.
[slot] void QLabel::setNum(int num)
[slot] void QLabel::setNum(double num)
[slot] void QLabel::setPicture(const QPicture &picture)
void QLabel::setSelection(int start, int length)
[virtual] QSize QLabel::sizeHint() const