【问题标题】:Qt, Designer creates scrollAreaWidgetContents in scrollArea, and i cant resize my imagelabelQt,Designer 在scrollArea 中创建scrollAreaWidgetContents,我无法调整图像标签的大小
【发布时间】:2011-09-21 04:55:18
【问题描述】:

我已将滚动区域拖到设计器中,然后我拖了一个标签(imageLabel,用于 setPixmap)。然后我右键单击并将布局设置为网格。

scrollArea = new QS.....
scrollAreaWidgetContents = new QWidget();
gridlayout = new QGri..(scrollAreaWidgetContents);
imageLabel = new QLabel(scrollAreaWidgetContents);
gridLayout->addWidget(imageLabel,.....);

scrollArea->setWidget(scrollAreaWidgetContents);

所以设计师已经创建了上面的代码,遗漏了几个部分,我现在在我的代码集中设置了 ui->imageLabel->setPixmap 并尝试执行 ui->imageLabel->resize(200,200)。但图像始终为全尺寸 1600x1400 像素)。

网上的代码示例,好像都是直接把imageLabel设置成scrollArea,省略了scrollAreaWidgetContents?但我似乎没有从设计师那里做到这一点?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    resize 在小部件位于布局内时大部分时间都会被忽略。

    您可以使用setFixedSizesetMinimumSize 代替强制大小或小于图像的大小。

    您还需要将QLabelscaledContents 属性设置为True(在设计器中或使用QLabel::setScaledContents)以将图像缩放到标签大小。

    【讨论】:

    • 是的,我发现它是一些 setScaledContent 并且滚动小部件上的属性也有一些影响。从 Qt Docs 上的 Image Viewer Example 中找到。
    • setScaledContents(true) 将缩放图像以适合 QLabel。
    【解决方案2】:

    在设计器中创建布局。将布局边距更改为零。这应该会产生与从链中删除 scrollAreaWidgetContents 相同的结果,但可以通过设计器实现。

    【讨论】:

      猜你喜欢
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 2023-03-21
      • 2013-11-15
      • 1970-01-01
      • 2020-07-07
      相关资源
      最近更新 更多