我用QT绘制一块画布,想让画布大小可以随着窗口大小的变化而变化,要怎么实现?QT菜鸟,请求帮忙~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用QT绘制一块画布,想让画布大小可以随着窗口大小的变化而变化,要怎么实现?QT菜鸟,请求帮忙~相关的知识,希望对你有一定的参考价值。

参考技术A 将画布放在QLayout中或直接将画布设为窗体的centerWidget本回答被提问者采纳

将画布大小调整为窗口/用户控件大小

【中文标题】将画布大小调整为窗口/用户控件大小【英文标题】:Resize canvas to window / user control size 【发布时间】:2011-01-05 16:48:17 【问题描述】:

您好,我将 SVG 图像转换为 XAML/画布。我想将此画布设置为窗口/用户控件背景。

类似这样的:

    <Window x:Class="WpfApplication2.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">

    <Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
Name="svg2383" Width="800" Height="600">

    <---->
    </Canvas>
    </Window>

我的问题是画布太大,我想在窗口高度/宽度上自动调整大小/拉伸画布。

画布上的图像很复杂..http://kde-look.org/content/show.php/something_wall?content=115863

所以设置宽度和高度不是解决方案,因为这个画布包含其他画布。

【问题讨论】:

【参考方案1】:

去掉指定的宽高怎么样

<canvas Name="svg2383">
<---->
</canvas>

编辑:另一种方法是使用如下绑定:

<Window x:Name="MainWin">
   <Canvas Width="Binding ElementName=MainWin, Path=ActualWidth"
      Height="Binding ElementName=MainWin, Path=ActualHeight">
   <--->
   </Canvas>
</Window>

【讨论】:

所以设置宽度和高度不是解决方案,因为这个画布包含其他画布。所以画布有其他画布,他有其他画布,我必须设置许多属性高度和宽度......这不是解决方案。【参考方案2】:

您可以将画布放在Viewbox 中。这将允许您拉伸它以填充窗口,同时以恒定大小设计它。

【讨论】:

好的,但我想将画布作为背景,因为我想在这个背景上放置一些控件。如果我使用视图框,我必须在视图框中放置画布,在画布中我必须将控件作为网格与其他控件一起放置。我觉得不好。 @jminarik:制作一个单独的画布 - 将它用于您的其他控件,并将 Viewbox 和它放在一个网格中。应该可以正常工作。

以上是关于我用QT绘制一块画布,想让画布大小可以随着窗口大小的变化而变化,要怎么实现?QT菜鸟,请求帮忙~的主要内容,如果未能解决你的问题,请参考以下文章

如何设置画布大小?

添加采用所有窗口大小的画布,并在左下角添加一个按钮,按百分比添加边距

Javascript:在画布上绘制图像时,图像大小变为两倍

在窗口调整大小时动态调整画布大小

android图像绘制——画布保存为图片

如果我调整画布大小,我的 createJS 文本会变得模糊