首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt Designer -窗口不会比带有像素映射的QLabel小

Qt Designer -窗口不会比带有像素映射的QLabel小
EN

Stack Overflow用户
提问于 2014-07-24 17:53:35
回答 2查看 4.7K关注 0票数 17

我正在创建一个程序(在Qt 2.8.1,Qt5.1.1中),它基本上显示了一个图像,在本例中是一个扑克牌(还有一些按钮、标签和一行编辑)。所有小部件都是垂直/水平布局,窗口布局是网格布局。

我重新实现了主窗口的调整大小事件,以使图像正确地调整大小,并将像素映射调整到它的大小--基本上,标签尽可能垂直扩展(垂直大小策略设置为展开(1)),然后图像被重新缩放。

当窗口展开时,一切正常工作,标签和图像都正确地调整大小。但是,我不能把窗口缩回去:也就是说,当调整大小时,我不能让窗口的高度比包含当前标签大小所必需的要小--标签和图像都不能调整大小。如果我水平地缩小窗口,这样,为了保持这个比率,图像被缩小了(最左边的图像),那么我可以垂直地缩小窗口。注意,当水平调整窗口大小时,只有图像/像素映射被缩小,而不是标签。

下面是我用来管理大小的代码(2):

代码语言:javascript
运行
复制
void MainWindow::resizeEvent(QResizeEvent* event)
{
    QMainWindow::resizeEvent(event);
    //Some code that is not causing the problem - I've checked
    showImage();
}
    
void MainWindow::showImage()
{ 
    int w = ui->imageLabel->width();
    int h = ui->imageLabel->height();

    //Getting image path from file - also not causing the problem
    QPixmap pixmap(":/image/path.png");

    //The image is quite big, so I need to
    // set a scaled pixmap to a w x h window, keeping its aspect ratio
    ui->imageLabel->setPixmap(pixmap.scaled(w,h,Qt::KeepAspectRatio));
    ui->imageLabel->setMask(pixmap.mask());       
}

下面是Qt Designer和运行时的安排:

因此,简单地说:

  1. 当窗户的高度增加时,标签和图像就相应地增长,保持其比例。
  2. 降低窗口高度时:
    • 如果图像不需要更改,即使标签做了,窗口也会正常调整大小。
    • 如果图像需要缩小,那么窗口根本不会调整大小。

  1. 当窗口宽度减小时,窗口通常调整大小为
    • 如果需要保持图像比率,则图像(像素图)缩小,但标签只水平缩小。

我发现奇怪的是,像素映射阻止窗口垂直调整大小,但如果窗口水平调整大小,则在缩小窗口方面没有问题。

问题是,这只能是:对于如何解决这个问题,有什么想法吗?

(1)也尝试了最小膨胀,同样发生了同样的事情。-也尝试通过编程调整标签的大小,但是其他小部件忽略标签的大小而不移动,导致重叠。

(2)由于我几乎是第一次使用Qt,所以我无法/不知道如何复制大量可以复制、编译和执行的代码,而不用大量不重要的代码来填充这个问题。

注意:请随意索取更多您认为可能有助于发现问题的原因和/或解决方案的信息。

EN

Stack Overflow用户

发布于 2018-04-13 14:14:24

对于仍在寻找解决方案的人,需要为QLabel设置最小大小:

代码语言:javascript
运行
复制
ui->imageLabel->setMinimumSize(1, 1);

这里指出了解决方案:https://forum.qt.io/topic/58749/solved-how-to-shrink-qmainwindow-with-a-qlabel-including-an-image/3

票数 22
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24940709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档