如何把QLabel作为一个控件添加到窗口中使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把QLabel作为一个控件添加到窗口中使用相关的知识,希望对你有一定的参考价值。
原因是那个mainWindow本身就具有Layout了,这个Layout包含了顶部的菜单栏、工具栏,中部的centralWidget和底部的状态栏。所以你不能再给mainwindow添加QVBoxLayout了,你只能给centralWidget添加layout。
只要将setLayout(mainLayout);
这一句改成:
this->centralWidget()->setLayout(mainLayout);就行了。
改过之后:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
ui->setupUi(this);
QVBoxLayout *mainLayout = new QVBoxLayout;
Title = new QLabel(tr("校园导航系统"),this);
Title->resize(550,100);
Title->setAlignment(Qt::AlignCenter);
Title->setStyleSheet("background-color:red;font-size:40px; color:blue");
Greeting = new QLabel(tr("Welcome"),this);
Greeting->resize(550,100);
Greeting->setStyleSheet("background-color:yellow;font-size:20px; color:blue");
mainLayout->addWidget(Title);
mainLayout->addWidget(Greeting);
this->centralWidget()->setLayout(mainLayout);
//++++++++
setWindowTitle(tr("校园导航系统"));
resize(550,600);
VB2011将VB6的通用对话框控件分解成为OpenFileDialog、SaveFileDialog、ColorDialog 和 FontDialog 组件处理文件、颜色和字体,直接在工具箱面板上找到对应组件,双击加入窗体,即可使用。 参考技术A 搜一下:如何把QLabel作为一个控件添加到窗口中使用
如何更新 QLabel 以显示 QImage
【中文标题】如何更新 QLabel 以显示 QImage【英文标题】:How to update a QLabel to display a QImage 【发布时间】:2012-03-06 20:00:55 【问题描述】:我可能误解了如何做到这一点,希望有人能澄清一下。
我在 Qt Designer 中的主窗口上放置了一个QLabel
。目前,当我运行程序时,它只显示字母“TextLabel
”。
我有一个行编辑,我在其中输入图像的路径,然后将图像作为QImage
加载到内存中(我有这个工作)。
最后,我想显示这个QImage
。我被告知这可以通过QLabels
来完成。我做了以下事情,但什么都没有发生:
ui.input_label->setPixmap(QPixmap::fromImage(my_qimage));
为什么什么都没发生?如何显示此图像?
【问题讨论】:
您知道QImage
在加载后是否有效的标准是什么?
@ArnoldSpence 对不起,我不明白。它是出于实验目的,所以我知道它是有效的,因为我正在输入它。
【参考方案1】:
如果您确定图像文件没问题,但问题可能在于将文件加载到QImage
。如果你调用QImage::load()
,你可能会得到false
的返回值。
【讨论】:
有趣。我实际上是通过 OpenCV 加载它,并转换为 ypnos 的回答中概述的 QImage:***.com/questions/9590950/…。我在 OpenCV 中显示图像,这很好。我不需要做任何事情来更新主窗口来查看标签的更新? 哦,我假设您是直接从QImage
的文件加载图像。调用“setPixmap()”后,标签应自行更新并显示图像。以上是关于如何把QLabel作为一个控件添加到窗口中使用的主要内容,如果未能解决你的问题,请参考以下文章