gpt4 book ai didi

python - QtDesigner 预览与实际 GUI 不同

转载 作者:行者123 更新时间:2023-11-28 18:26:28 25 4
gpt4 key购买 nike

Python 3.4、PyQt5、QtDesigner

我使用 QtDesigner 制作了一个 GUI,但从中生成的 Python 应用程序 GUI 与 QtDesigner 显示的预览不匹配。问题似乎与我的网格布局的尺寸/间距有关。我没有在 GUI 中手动编辑任何内容,所有代码都是由 QtDesigner 创建的。

QtDesigner 预览和应用程序 GUI:

enter image description here

QtDesigner .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>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>131</width>
<height>111</height>
</rect>
</property>
<property name="title">
<string>GroupBox</string>
</property>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>111</width>
<height>81</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="spacing">
<number>5</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>a =</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLineEdit" name="lineEdit_3"/>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="lineEdit_5"/>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_4"/>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item row="3" column="3">
<widget class="QLineEdit" name="lineEdit_9"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_7"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>b =</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLineEdit" name="lineEdit_6"/>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>c =</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLineEdit" name="lineEdit_8"/>
</item>
<item row="0" column="1" colspan="3">
<widget class="QLabel" name="label_4">
<property name="text">
<string>( x , y , z )</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

使用 pyuic 将 .ui 文件转换为 testGUI.py。

这是应用程序代码:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from testGUI import Ui_MainWindow

class App(Ui_MainWindow):
def __init__(self, dialog):
Ui_MainWindow.__init__(self)
self.setupUi(dialog)


if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
dialog = QtWidgets.QMainWindow()

testGUI = App(dialog)

dialog.show()
sys.exit(app.exec_())

最佳答案

当我最初创建 GUI 时,我首先添加了一个网格布局小部件 QGridLayout , 然后用项目填充它,然后将它拖过来并放置在组框容器中 QGroupBox .

我通过不使用 QGridLayout 解决了这个问题而不是简单地将项目添加到 QGroupBox然后将网格布局应用于容器。应用程序 GUI 现在与 QtDesigner 预览相匹配。

关于python - QtDesigner 预览与实际 GUI 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com