c++ - 如何在 QT 框架的 UI 上显示一个 "*.png"文件?

标签 c++ qt user-interface png

我是 Qt Framework 的新手...

我想在我的 Form1.ui 中显示一张 .png 图片, 所以我从小部件框中拖放了一个图形 View 我将 test.png 放在同一目录中(在项目文件夹内)

我在代码中做到了这一点

//Form1.cpp
#include "form1.h"
#include "ui_form1.h"

Form1::Form1(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form1)
{
    ui->setupUi(this);
    ui->Pic1->setStyleSheet("background-image: url(test.png)");

}

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



//Form1.h
#ifndef FORM1_H
#define FORM1_H

#include <QWidget>

namespace Ui {
    class Form1;
}

class Form1 : public QWidget
{
    Q_OBJECT

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

private:
    Ui::Form1 *ui;
};

#endif // FORM1_H

它编译完美,但图片没有出现, 我做错了什么?

这是我的二维码:

最佳答案

您应该用来显示图片的小部件是 QLabel .您可以通过设置其 pixmap 属性直接从 QtCreator 执行此操作。

正如其他人所说,您应该首先创建一个资源文件,然后将图像添加到该资源文件中。要创建 Qt 资源文件,请转到菜单:文件 > Qt > Qt 资源文件。

编辑以编程方式进行:

//names starting with : means that they are on a resource file, 
//otherwise in the filesystem
QPixmap * mypix = new QPixmap(":/karim/test.png"); 
ui->your_label->setPixmap(mypix);
delete mypix;

关于c++ - 如何在 QT 框架的 UI 上显示一个 "*.png"文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910946/

相关文章:

c++ - 为什么在构造函数中分配器?

python - 检查 PyObjects C 类型

c++ - 如果存在非捕获局部变量,为什么不能在 Lambda 中使用非限定成员变量?

user-interface - 用户界面设计

matlab - 避免中断 Matlab GUI 中的回调函数

java - GUI FileViewer 程序文件加载问题

c++ - std::vector 和复制构造函数

qt - Qt 桌面和嵌入式应用程序中的文本大小和样式不同

qt - 在 Qt 中与 libpng 链接

c++ - QVector 和 QMap。程序崩溃,这是无效代码吗?