別の機能が実行されている間に、私のpysideプログラムの先頭に読み込みグラフィック(現在は単なるラベル)を表示しようとしています。完了後、メインGUIをロードしてロードする必要があります。私は、これは、これまでスレッドを使ってPySideに読み込みを作成する
from PySide import QtCore
from PySide import QtGui
class DoStuff:
def __init__(self):
pass
def ReturnInformation(self):
time.sleep(20) #Sleep to simulate processing time
return "information"
class Main(QtGui.QWidget):
def __init__(self):
super(Main, self).__init__()
self.initQ = queue.Queue()
self.initthread = threading.Thread(target=self.InitThread)
self.initthread.daemon = True
self.initthread.start()
self.setStyleSheet("background-color: black;")
self.setCursor(QtCore.Qt.BlankCursor)
self.loaddisplay = QtGui.QLabel(self)
self.loaddisplay.move(20, 20)
self.loaddisplay.setText("Loading...")
self.show()
self.initthread.join()
self.MainDisplay()
self.show()
def InitThread(self):
self.dostuff = DoStuff()
def MainDisplay(self):
self.display = QtGui.QLabel(self)
self.display.setStyleSheet("font: 70pt Helvetica; color: white;")
self.display.move(20, 20)
self.display.setText(self.dostuff.ReturnInformation())
self.manager = QtCore.QTimer(self)
self.manager.timeout.connect(self.Update)
self.manager.start(100000)
def Update(self): #Update the information once in a while
self.timedisplay.setText(self.dostuff.ReturnInformation())
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
GUI = Main()
sys.exit(app.exec_())
問題だけ負荷グラフィックが表示され、MainDisplay()
からのGUIが表示されないことである持っています。私はこれが私がshow()
関数を呼び出す方法と関係があると確信しています。それが問題なのですが、どうすれば修正できますか?
また、読み込みが完了したら読み込みラベルを削除するにはどうすればよいですか?
P.S. (前にこの質問をしましたが、回答やコメントや低い見解がないので、削除して再度質問しています)
あなたがInitThreadとMainDisplayの実装を示さなければなりません。 – eyllanesc
時間、天気、ニュースとは何ですか?あなたは、検証可能な手段が何かを理解しています。 – eyllanesc
このタイプの問題では、回答できる可能性が低い場合、githubなどでプロジェクトを共有した場合、実行可能なコードを助けたり、少なくとも共有することができます。 – eyllanesc