我用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菜鸟,请求帮忙~的主要内容,如果未能解决你的问题,请参考以下文章