Python 如何在窗口完全加载之前显示加载屏幕?
因此,我的应用程序有一个窗口似乎打开缓慢,因为它必须加载大约400个PNG。我想在完全加载之前显示加载屏幕。 窗口代码如下所示:Python 如何在窗口完全加载之前显示加载屏幕?,python,python-3.x,pyqt,pyqt5,Python,Python 3.x,Pyqt,Pyqt5,因此,我的应用程序有一个窗口似乎打开缓慢,因为它必须加载大约400个PNG。我想在完全加载之前显示加载屏幕。 窗口代码如下所示: from PyQt5 import QtCore, QtGui, QtWidgets import sys class Ui_Form3(object): def setupUi(self, Form3): #design choices self.scrollArea = QtWidgets.QScrollArea(self.fram
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_Form3(object):
def setupUi(self, Form3):
#design choices
self.scrollArea = QtWidgets.QScrollArea(self.frame) #a scroll area that contains 400 buttons
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 639, 40712))
self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
self.verticalLayout = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents_2)
self.verticalLayout.setObjectName("verticalLayout")
for i in range(400): #this part generates all the buttons
iplusone = i + 1
bttnstring = "pushButton_" + str(iplusone)
self.pushButton = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
self.pushButton.setText('sometext')
self.pushButton.setObjectName(bttnstring)
self.verticalLayout.addWidget(self.pushButton)
#more design choices
def retranslateUi(self, Form3):
_translate = QtCore.QCoreApplication.translate
Form3.setWindowTitle(_translate("Form3", "App"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Form3 = QtWidgets.QWidget()
ui = Ui_Form3()
ui.setupUi(Form3)
Form3.show()
sys.exit(app.exec_())
我是否可以制作一个加载屏幕,当该窗口应该打开时,该屏幕将打开并保持活动状态,直到变量I达到值400?如果没有,我还能做什么?是的,你可以
如果名称=“\uuuuu main\uuuuuuuu”:
app=qtwidts.QApplication(sys.argv)
#加载小部件
app.load=LoadingWidget()
app.load.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWindowHint)#使其始终处于活动状态
app.loading.show()
Form3=qtwidts.QWidget()
ui=ui_Form3()
ui.setupUi(表格3)
表格3.show()
sys.exit(app.exec_())
然后,在加载图像的函数中添加:
load=QtWidgets.QApplication.instance().loading
正在加载。隐藏()
奖金。某种加载小部件:
类加载窗口(QWidget):
定义初始化(自身,父级):
super()。\uuuu init\uuuu(父级)
main_layout=qtwidts.QHBoxLayout()
self.text=QLabel(“正在加载,请稍候”)
self.text.setStyleSheet(“QLabel{color:white;}”)
main_layout.addWidget(self.text)
self.setStyleSheet(“背景色:#595e”)
self.setLayout(主布局)
def显示(自我):
#您可以重写此方法以将小部件置于中心等。。
super().show()