【问题标题】:How to resize the main window to the dimensions of an image resource如何将主窗口的大小调整为图像资源的尺寸
【发布时间】:2014-12-05 22:19:13
【问题描述】:

上周早些时候,我在 Python 中创建了一个窗口,将主窗口的大小调整为背景图像的尺寸。我想在 QT 中做同样的事情。我已经设法弄清楚通过其构造函数调整主窗口大小的语法。

this->setFixedSize(QSize(600, 600));

我很好奇我现在如何将宽度和高度参数设置为资源文件中图像的相同参数。我在想这样的事情:

QGraphicsPixmapItem image(QPixmap("url(:/images/background.png);"));
int x = image.width
int y = image.length
this->setFixedSize(QSize(x, y));

编辑:

总之,我想将主窗口的大小调整为与图像文件相同的尺寸,以便窗口环绕背景图像。根据this post,我必须解析图像标题才能读取尺寸……听起来太复杂了。有第三方库吗?

【问题讨论】:

  • 你试过resize()吗?
  • 不,我没有。我想将主窗口的大小调整为图像文件的相同尺寸,以便窗口环绕背景图像。根据this post,我必须解析图像标题才能读取尺寸……听起来太复杂了。有第三方库吗?

标签: qt


【解决方案1】:

不要使用QGraphicsPixmapItem,而是使用QImage 来获取图像的大小。

QImage image(":/images/background.png");
if(!image.isNull())
    setFixedSize(image.size());
else
    //loading the image failed, show some error message or something

【讨论】:

  • 谢谢,我会试试这个。我必须导入什么头文件才能使用这个库QImage
  • @the_prole #include <QImage>。我在答案中链接到的QImage 的文档中也提到了这一点。
  • 为什么我的 main.cpp 中的标题看起来与 QT 文档中的标题不同,例如#include "ui_mainwindow.h"#include <QImage>?无论如何,QImage 无法识别...
  • @the_prole 检查this question。不承认是什么意思?
【解决方案2】:

设置为 new 后,您是否尝试过调整大小?

this->setFixedSize(QSize(x, y));
this->adjustSize();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    相关资源
    最近更新 更多