我在Qt Designer中内置了一个主窗口。
它有四个按钮。
我想在按下按钮时进行“无缝”过渡,即按下按钮时,将重新绘制具有我的逻辑的当前窗口,或者绘制在Qt Designer中组装的另一个窗口来代替当前窗口,而无需关闭动画当前窗口。
简单地在当前窗口上覆盖一个新窗口可能会更容易。用一个最小的例子告诉我如何最好地做到这一点。
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(911, 677)
MainWindow.setMaximumSize(QtCore.QSize(911, 677))
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.btc_btn = QtWidgets.QPushButton(parent=self.centralwidget)
self.btc_btn.setGeometry(QtCore.QRect(0, 0, 93, 28))
self.btc_btn.setObjectName("btc_btn")
self.eth_btn = QtWidgets.QPushButton(parent=self.centralwidget)
self.eth_btn.setGeometry(QtCore.QRect(110, 0, 93, 28))
self.eth_btn.setObjectName("eth_btn")
self.ton_btn = QtWidgets.QPushButton(parent=self.centralwidget)
self.ton_btn.setGeometry(QtCore.QRect(220, 0, 93, 28))
self.ton_btn.setObjectName("ton_btn")
self.settings_btn = QtWidgets.QPushButton(parent=self.centralwidget)
self.settings_btn.setGeometry(QtCore.QRect(340, 0, 93, 28))
self.settings_btn.setObjectName("settings_btn")
self.version_label_m = QtWidgets.QLabel(parent=self.centralwidget)
self.version_label_m.setGeometry(QtCore.QRect(861, 657, 41, 31))
self.version_label_m.setText("")
self.version_label_m.setObjectName("version_label_m")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setEnabled(False)
self.menubar.setGeometry(QtCore.QRect(0, 0, 911, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
self.statusbar.setEnabled(False)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "src.wllt"))
self.btc_btn.setText(_translate("MainWindow", "Bitcoin"))
self.eth_btn.setText(_translate("MainWindow", "Ethereum"))
self.ton_btn.setText(_translate("MainWindow", "TON"))
self.settings_btn.setText(_translate("MainWindow", "Settings"))
QStackedWidget类提供了一堆小部件,其中一次只有一个小部件可见。
猫.jpg