PyQt:如何在QStackedWidget对象中移动小部件?

时间:2018-04-05 08:11:43

标签: python qt pyqt

我创建了一个名为""的按钮,窗口显示了下一个名为"第二个"的按钮。点击按钮" First",但按钮" Second"没有动过:

self.b2.move(50,50)

问题是什么?

import sys
from PyQt5 import QtWidgets

class Window(QtWidgets.QMainWindow):

   def __init__(self):

       super().__init__()
       self.init_UI()

   def init_UI(self):

       self.Centr= QtWidgets.QWidget()
       self.setCentralWidget(self.Centr)

       self.window = QtWidgets.QStackedWidget(self.Centr)
       self.b1 = self.addButton()
       self.window.addWidget(self.b1)
       self.b2 = self.addButton_2()
       self.b2.move(50,50)
       self.window.addWidget(self.b2)

       self.b1.clicked.connect(self.b1_clk)

       self.currentStack(0)

       self.show()

   def addButton(self): 
       b1 = QtWidgets.QPushButton("First")
       return b1

   def addButton_2(self):  
       b2 = QtWidgets.QPushButton("Second")
       return b2

   def b1_clk(self):
       self.currentStack(1)

   def currentStack(self, index):
      self.window.setCurrentIndex(index)

app = QtWidgets.QApplication(sys.argv)
w = Window()
sys.exit(app.exec_())

抱歉我的英文。 谢谢你的关注!

1 个答案:

答案 0 :(得分:0)

按钮移动,但随后会立即将其添加到QStackedWidget,这将更改父级并撤消移动。另外,使用QStackedWidget时,子窗口小部件的大小和位置由QStackedWidget

的大小和位置控制