2017-11-21 10 views
0

시작 화면이 필요합니다. 백그라운드 프로그램이 종료 될 때까지 기다립니다. 주 스크립트를 다시 열었지만 이미지 시작 스크립트의 레이블을 표시 할 수 없습니다. 게시물이 대부분 코드 인 것처럼 보입니다. 자세한 내용을 추가하십시오.pyqt 시작 창 스위치

# -*- coding: utf-8 -*- 

import sys 

from PyQt4 import QtCore, QtGui 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

class Ui_MainWindow(QtGui.QMainWindow): 
    def __init__(self): 
     super(Ui_MainWindow, self).__init__() 

     self.resize(400,850) 

    def loading(self): 

     widgets = Start_window() 
     widgets.show() 
     for ii in xrange(100000): 
      print ii 

class Start_window(QtGui.QMainWindow): 
    def __init__(self): 
     super(Start_window, self).__init__() 
     self.setupUi_st(self) 

    def setupUi_st(self, Dialog): 
     Dialog.resize(550, 450) 
     self.label = QtGui.QLabel(Dialog) 
     self.label.setGeometry(QtCore.QRect(80, 40, 400, 400)) 

     self.movie = QtGui.QMovie("images/minlogo.gif") 
     self.label.setMovie(self.movie) 
     self.movie.start() 


if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    myapp = Ui_MainWindow() 
    myapp.loading() 
    myapp.show() 
    sys.exit(app.exec_()) 

답변

0

문제는 시간이 오래 걸리고,이 솔루션은 가능한 솔루션은 GUI를 업데이트 할 필요 qApp.processEvents()을 사용하는 것입니다,로드를 만드는 작업의 종류에 의존하기 때문에 루프가 차단된다는 점이다.

def loading(self): 
    widgets = Start_window() 
    widgets.show() 
    qApp.processEvents() 
    for ii in xrange(100000): 
     qApp.processEvents() 
     print(ii) 
+0

내 문제를 완벽하게 해결해 주셔서 감사합니다. –