繁体   English   中英

Pyqt5 python 中的 Stackwidget

[英]Stackwidget in Pyqt5 python

我正在创建一个包含 3 页的 StackWidget 屏幕。 问题是stackwidget页面中只有一个页面显示了其中的所有小部件,但其他页面在角落切割了三个元素,请参见照片

错误页面:
错误页面

正确的页面,我希望其他页面在四个角落显示所有小部件:
正确的页面,我希望其他页面在四个角落显示所有小部件

    from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1200, 679)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(30, 100, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(30, 220, 93, 28))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(30, 330, 93, 28))
        self.pushButton_3.setObjectName("pushButton_3")
        self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
        self.stackedWidget.setGeometry(QtCore.QRect(170, 0, 1011, 631))
        self.stackedWidget.setObjectName("stackedWidget")
        self.page_3 = QtWidgets.QWidget()
        self.page_3.setObjectName("page_3")
        self.pushButton_4 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_4.setGeometry(QtCore.QRect(10, 10, 93, 28))
        self.pushButton_4.setObjectName("pushButton_4")
        self.pushButton_5 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_5.setGeometry(QtCore.QRect(880, 20, 93, 28))
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_6 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_6.setGeometry(QtCore.QRect(10, 580, 93, 28))
        self.pushButton_6.setObjectName("pushButton_6")
        self.pushButton_7 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_7.setGeometry(QtCore.QRect(890, 590, 93, 28))
        self.pushButton_7.setObjectName("pushButton_7")
        self.stackedWidget.addWidget(self.page_3)
        self.page_4 = QtWidgets.QWidget()
        self.page_4.setObjectName("page_4")
        self.lineEdit = QtWidgets.QLineEdit(self.page_4)
        self.lineEdit.setGeometry(QtCore.QRect(10, 30, 113, 22))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.page_4)
        self.lineEdit_2.setGeometry(QtCore.QRect(870, 580, 113, 22))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_3 = QtWidgets.QLineEdit(self.page_4)
        self.lineEdit_3.setGeometry(QtCore.QRect(30, 570, 113, 22))
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.lineEdit_4 = QtWidgets.QLineEdit(self.page_4)
        self.lineEdit_4.setGeometry(QtCore.QRect(860, 30, 113, 22))
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.stackedWidget.addWidget(self.page_4)
        self.page_5 = QtWidgets.QWidget()
        self.page_5.setObjectName("page_5")
        self.calendarWidget = QtWidgets.QCalendarWidget(self.page_5)
        self.calendarWidget.setGeometry(QtCore.QRect(10, 10, 392, 236))
        self.calendarWidget.setObjectName("calendarWidget")
        self.calendarWidget_2 = QtWidgets.QCalendarWidget(self.page_5)
        self.calendarWidget_2.setGeometry(QtCore.QRect(600, 20, 392, 236))
        self.calendarWidget_2.setObjectName("calendarWidget_2")
        self.calendarWidget_3 = QtWidgets.QCalendarWidget(self.page_5)
        self.calendarWidget_3.setGeometry(QtCore.QRect(610, 380, 392, 236))
        self.calendarWidget_3.setObjectName("calendarWidget_3")
        self.calendarWidget_4 = QtWidgets.QCalendarWidget(self.page_5)
        self.calendarWidget_4.setGeometry(QtCore.QRect(10, 380, 392, 236))
        self.calendarWidget_4.setObjectName("calendarWidget_4")
        self.stackedWidget.addWidget(self.page_5)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1200, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.stackedWidget.setCurrentIndex(2)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "1"))
        self.pushButton_2.setText(_translate("MainWindow", "2"))
        self.pushButton_3.setText(_translate("MainWindow", "3"))
        self.pushButton_4.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_5.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_6.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_7.setText(_translate("MainWindow", "PushButton"))

块引用

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction ,QFileDialog
from stackwidgettest import *
class MyForm(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        
        self.ui.pushButton.clicked.connect(self.moveforward)  
        self.ui.pushButton_2.clicked.connect(self.moveback)
        self.ui.pushButton_3.clicked.connect(self.movebacks)
        
        
    def moveforward(self):
        self.ui.page_3.show()
        self.ui.page_4.hide()
        self.ui.page_5.hide()
        
    def moveback(self):
        self.ui.page_3.hide()
        self.ui.page_4.show()
        self.ui.page_5.hide()
    def movebacks(self):
        self.ui.page_3.hide()
        self.ui.page_4.hide()
        self.ui.page_5.show()

if __name__=="__main__":    
    app = QApplication(sys.argv)
    w = MyForm()
    w.show()
    sys.exit(app.exec_())

stackwidget 的 setCurrentIndex() 方法解决的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM