我正在使用PyQt5开发一个项目,我遇到了UI问题。我用Qt Designer创建了界面,生成了.ui文件,导入了代码,并在屏幕上显示了我想要的窗口。但是,我有一个问题。在屏幕上显示窗口会有第二次延迟。
这是.ui文件:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>461</width>
<height>320</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>47</width>
<height>13</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>180</x>
<y>280</y>
<width>75</width>
<height>25</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>120</x>
<y>60</y>
<width>80</width>
<height>25</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>220</x>
<y>60</y>
<width>80</width>
<height>25</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_3">
<property name="geometry">
<rect>
<x>320</x>
<y>60</y>
<width>80</width>
<height>25</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_4">
<property name="geometry">
<rect>
<x>20</x>
<y>60</y>
<width>80</width>
<height>25</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>310</x>
<y>70</y>
<width>47</width>
<height>13</height>
</rect>
</property>
<property name="text">
<string>-</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>110</x>
<y>70</y>
<width>47</width>
<height>13</height>
</rect>
</property>
<property name="text">
<string>-</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>210</x>
<y>70</y>
<width>47</width>
<height>13</height>
</rect>
</property>
<property name="text">
<string>-</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
这是.py文件:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'uifiles/untitled.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(461, 320)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(20, 20, 47, 13))
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(180, 280, 75, 25))
self.pushButton.setObjectName("pushButton")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(120, 60, 80, 25))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(Form)
self.lineEdit_2.setGeometry(QtCore.QRect(220, 60, 80, 25))
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(Form)
self.lineEdit_3.setGeometry(QtCore.QRect(320, 60, 80, 25))
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(Form)
self.lineEdit_4.setGeometry(QtCore.QRect(20, 60, 80, 25))
self.lineEdit_4.setObjectName("lineEdit_4")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(310, 70, 47, 13))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(110, 70, 47, 13))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(210, 70, 47, 13))
self.label_4.setObjectName("label_4")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "TextLabel"))
self.pushButton.setText(_translate("Form", "PushButton"))
self.label_2.setText(_translate("Form", "-"))
self.label_3.setText(_translate("Form", "-"))
self.label_4.setText(_translate("Form", "-"))
class Window(QtWidgets.QWidget,Ui_Form):
def __init__(self):
QtWidgets.QWidget.__init__(self)
Ui_Form.__init__(self)
self.setupUi(self)
def main():
app = QtWidgets.QApplication(sys.argv)
m = Window()
m.show()
app.exec()
if __name__ == "__main__":
main()
以下是延迟发生时屏幕保持状态的打印,大约1到2秒生成界面:
这是全屏:
我注意到任何延迟都在self.retranslateUi(Form)
或者我尝试将setupUi()
对象的特征设置为setText()
或将项目与信号连接。
如果我在retranslateUi()
中评论函数setupUi()
的调用,则一切都会发生&#34;以及#34; - 窗口没有任何延迟地执行,但是没有设置窗口小部件的信息。