我正在尝试在Qt Designer中显示一些项目,但是我无法做到这一点,因为尽管我正确地将它们放在.ui中,当我编译并运行代码时,这些项目都放错了地方:
你可以通过上面的图片注意到我想要的是在左侧:QStackedWidget内的四个项目与其他项目完全对齐,但我得到的是正确的部分:QStackedWidget中的所有四个项目是不对齐的。
我试图尽可能地操纵与保证金等相关的变量,但我根本无法理解为什么应用程序显示的内容与编程的不同。关于如何解决这个问题的任何提示?
更新
添加以下图片以帮助评论以下给定答案:
更新
.ui文件:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>306</width>
<height>229</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>306</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>306</width>
<height>229</height>
</size>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout_4">
<item row="3" column="1">
<widget class="QPushButton" name="pbUpdate">
<property name="text">
<string>Update</string>
</property>
</widget>
</item>
<item row="3" column="0">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pbFullUpdate">
<property name="text">
<string>Full update</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pbSingleFile">
<property name="text">
<string>Single file</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>89</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0" colspan="3">
<widget class="QStackedWidget" name="swInfo">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="page">
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Version ID:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QPushButton" name="pbVersionIDIncrease1">
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>^</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pbVersionIDIncrease2">
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>^</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pbVersionIDIncrease3">
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>^</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leID">
<property name="text">
<string>33.4550.1</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QGridLayout" name="gridLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="1">
<widget class="QLineEdit" name="leServerAddress">
<property name="minimumSize">
<size>
<width>186</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>186</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Server path:</string>
</property>
<property name="buddy">
<cstring>leServerAddress</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lePathToSave">
<property name="minimumSize">
<size>
<width>186</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>186</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>/mmcblk0p2/</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Path to save:</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Equipment IP:</string>
</property>
<property name="buddy">
<cstring>leEquipmentIP</cstring>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLineEdit" name="leEquipmentIP">
<property name="minimumSize">
<size>
<width>186</width>
<height>33</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>186</width>
<height>33</height>
</size>
</property>
<property name="text">
<string>10.1.25.10</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionExit">
<property name="text">
<string>Exit</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<tabstops>
<tabstop>leEquipmentIP</tabstop>
<tabstop>pbUpdate</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>
答案 0 :(得分:2)
没有理由为什么中间的两排小部件应与外部小部件对齐,因为它们不属于同一布局。
如果底部标签中的文字变长,这应该更加明显:
所以看起来你的结论是倒退的:它实际上是编译的版本是正确的,而Qt Designer版本需要进一步解释。但是,由于无法测试真实的ui文件,因此很难说更多。
<强>更新强>:
如果将最大/最小尺寸重置为MainWindow
和leEquipmentIP
的默认尺寸,您可以更轻松地查看正在发生的情况。
当水平调整窗口大小时,标签和行编辑之间的间距会以不同的速率变化。因此,窗口的临界宽度将完美对齐线条编辑。对我来说,这个宽度是303像素,但确切的值可能取决于窗口类型,当前窗口小部件样式,当前窗口装饰等。
这可能足以解释为什么Qt Designer有时会以不同的方式显示内容。例如,在我的系统上,我使用Docked Window界面模式,因此表单显示为MDI窗口。这意味着它们可以为顶级窗口(例如Qt Designer本身)提供不同的窗口装饰,因此它们的外部框架尺寸可能略有不同。
答案 1 :(得分:0)
您是否尝试过使用表格布局(有两列,如表格)
<强>更新强>
我在上下部分使用了表单布局。在中间有堆叠的小部件。 线路输入的右侧正确对齐,左侧也正确对齐。我通过将堆叠小部件的所有边距设置为0并且窗体布局边距已经为0来实现此目的。 此外,我对整个表单使用了垂直布局,这对于将三个布局正确对齐是必要的。 问题是如何在标签结束和行编辑开始之间对齐该部分。我认为如果不破解标签的最小/最大尺寸或左边的任何内容,这是不可能的。
如果可能的话,设计中的一些变化可能比破解不同布局之间的(中间)对齐更好(我认为这是不可能的)。
更新2:
好的,我把你的ui文件放在我的QtCreator测试项目中,结果很好 - 我没有你在更新的截图中显示的线条编辑问题。也许整个窗口有一些残留的大小调整 - 如果你调整窗口大小会发生什么。无论我在做什么,我都无法触发相同的行为 - 行编辑始终正确对齐。
剩下的问题是 - 你的QtCreator版本,Qt版本,操作系统是什么。 我的是QtCreator 3.3.2 Qt 5.4.1 Kubuntu 14.04