c++ - 第一次使用Qt : How to display an image?

标签 c++ qt

新手:如何显示图像 我对此很陌生,实际上才刚刚开始。我需要弄清楚如何在屏幕上显示图像。

首先我尝试了:

源代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene;
    QGraphicsView view(&scene);
    QPixmap qp = QPixmap("../images/tank2.bmp");
    if(qp.isNull())
    {
        printf("Yes its null\n");
    }
    else
    {
        QGraphicsPixmapItem item(QPixmap("../images/tank2.bmp"));
        scene.addItem(&item);
    }
    view.show();
    return a.exec();

}

来自:

Qt jpg image display

它编译并运行但不显示图像。返回 0 等。

然后我就从那里开始搞砸了。我也对某些事情感到好奇:在 Qt 编辑器中,它们显示了磁盘上不存在的文件结构。他们有文件“标题”、“来源”和资源,而在系统上它只是一个文件夹“项目名称”,所有文件都在一个文件夹中。这只是为了视觉清晰吗?

我使用的 QtCreator 版本是 2.4.1,运行 Qt 4.7.4 64 位。

我的最终目标是制作一个小部件,其中图片是一个可点击的图标,您可以在其中选择该图片并将其像磁贴一样放置在更大的屏幕上。

另一个问题:为什么 Qt 有“QString”和“QChar”之类的东西?普通的 c++ 库有问题吗?

最佳答案

如果你只想显示一个简单的图像,那么让一个 Qlabel 成为中央小部件并调用 setPixmap()传递你的图片路径

"Another Question: Why does Qt have things like "QString" and "QChar"? Is there something wrong with the normal c++ libraries?"

是的,普通库有很多错误——至少对于 std::string 是这样。
当 Qt 开始时,没有很好的跨平台 STL 支持,标准库在 Unicode 和翻译支持方面非常糟糕。 QString 在这方面做得很好——尽管我认为现代 STL 和 boost 的结合可能可以完成 QString 可以做的一切。

几乎所有 Qt 类型都是自动引用计数的,因此您几乎可以忽略它们的内存管理并自由传递它们。 Qt 还可以使用一些技巧,因为额外的 MOC 编译过程意味着它具有标准 C++ 所没有的类 Java 内省(introspection)功能。

但通常您可以自由使用标准 C++ 类型 (Qt: Qt classes vs. standard C++)

关于c++ - 第一次使用Qt : How to display an image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980274/

相关文章:

c++ - 从循环中的 QStandardItem 中删除项目

c++ - 在QWidget的setIcon方法中使用系统图标

c++ - Qt 按钮出现问题,我在 UI 中找不到它

c++ - QSslServer 中客户端的对等证书在 Qt C++ 中始终为 Null

c++ - 获取一个QWidget占满整个QMainWindow

c++ - C++从文件中读取整数

c++ - Qt 使用调色板更改 QWidget 的背景颜色不起作用

c++ - 模板偏特化

c++ - QByteArray 到 Integer 的转换产生不正确的结果

c++ - & 符号 '&' 参数末尾的运算符