2016-04-17 5 views
0

私はこの質問に関する少しの研究を持っていましたが、私はこれを行うための簡単な答えやチュートリアルを見つけることができませんでした。PyQt4でマルチページアプリケーションを作成するにはどうすればよいですか?


QPushButtonを使用してページ間を移動するウィジェットを見つけようとしています。私はQStackWidgetのことを聞いたことがありますが、私はそれをどのように使うべきか正確には分かっていません。多くのチュートリアルを見つけましたが、それらのすべてが理解しづらいものでした。


したがって、たとえば、私は、ウィンドウクラスを持っている:

import sys 
from PyQt4 import QtGui, QtCore 

class Window(QtGui.QMainWindow): 

私は、このクラスにQStackWidgetを追加することができますどのように? (レイアウトなし)

もしそうなら、QPushButtonを使用して特定のページにどのように切り替えることができますか? (1つのインデックスに複数のウィジェットを追加して)

余分なもの:移行に何らかの効果を加えることは可能ですか?フェージングのようなものです。

答えて

2
import sys 
from PyQt4 import QtGui, QtCore 

class Window(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QMainWindow.__init__(self) 

     self.stacked_widget = QtGui.QStackedWidget() 
     self.button = QtGui.QPushButton("Next") 

     self.button.clicked.connect(self.__next_page) 

     layout = QtGui.QVBoxLayout() 
     layout.addWidget(self.stacked_widget) 
     layout.addWidget(self.button) 

     widget = QtGui.QWidget() 
     widget.setLayout(layout) 
     self.setCentralWidget(widget) 

     self.stacked_widget.addWidget(QtGui.QLabel("Page 1")) 
     self.stacked_widget.addWidget(QtGui.QLabel("Page 2")) 
     self.stacked_widget.addWidget(QtGui.QLabel("Page 3")) 

    def __next_page(self): 
     idx = self.stacked_widget.currentIndex() 
     if idx < self.stacked_widget.count() - 1: 
      self.stacked_widget.setCurrentIndex(idx + 1) 
     else: 
      self.stacked_widget.setCurrentIndex(0) 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    w = Window() 
    w.show() 
    sys.exit(app.exec_()) 
+0

ありがとう!問題なく働いた。 – ShellRox

+0

申し訳ありませんが、インデックスに複数のウィジェットを追加するにはどうすればよいですか? @ gyu-don – ShellRox

+0

申し訳ありませんが、私はコードをよく理解できませんでした。単一のインデックス@gyu-donにマルチペットウィジェットを追加します。 – ShellRox

関連する問題