我习惯了 Qt 和它的 Qt Designer。
XAML 及其布局控件“grid”和“StackPanel”在某种程度上相似,但我仍然错过或找不到 Qt 中一些最常见的设计属性。由于我对 XAML 完全陌生,我想知道答案或更多可用文档。
例如,我想添加 2 个水平或垂直的元素(比如说按钮),它们的默认高度和最小高度和最小宽度。如果水平对齐,则应将它们推向左侧,而右侧的剩余侧应自由。这意味着如果窗口大小增加,按钮的大小不会增加。在 Qt 中,这是通过网格结合间隔来实现的(例如,请参见本教程的示例)。
我的第一个 XAML 与我的预期相差甚远。的定义RowDefinition
是从教程中复制的。但是我不明白它的含义...
<Window x:Class="SpectrumViewer.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Spectrum Viewer" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="8" VerticalAlignment="Top">
<Button MinWidth="75" MaxHeight="23" Margin="10" HorizontalAlignment="Left" Width="100" Name="buttonTest">test</Button>
<TextBox MinWidth="75" MaxHeight="23" Margin="10" HorizontalAlignment="Left" Width="150" Name="textBoxValue"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="8" >
<Button MinWidth="75" MaxHeight="23" Margin="10" HorizontalAlignment="Left" Width="100" Name="button1">button 1</Button>
<Button MinWidth="75" MaxHeight="23" Margin="10" HorizontalAlignment="Left" Width="100" Name="button2">button 2</Button>
</StackPanel>
</Grid>
</Window>
下图显示元素被推到左侧,但彼此上方的两个堆叠面板没有被推到顶部。如果我将它们都设置为VerticalAlignment="Top"
重叠,这也是错误的。
如果我调整窗口大小,可以看到元素没有调整大小并且第二个StackPanel
与第一个重叠:
相反,应将元素调整为最小宽度,并且应禁止进一步调整窗口大小。