gpt4 book ai didi

qt - Pyside 更改布局

转载 作者:行者123 更新时间:2023-12-04 13:20:28 36 4
gpt4 key购买 nike

我有一个界面,屏幕顶部有 4 个按钮,下面有 QFrame。我想根据按下的按钮更改 QFrame 中的布局。例如,如果按下 Button_1 显示一个 TextEdit Widget,如果按下 Button_2 显示一个 ListViewWidget。

有没有人知道如何做到这一点?
非常感谢!

最佳答案

使用 QStackedLayout 存储您的小部件。然后您可以更改为 setCurrentIndex 的那个.或者,您可以使用 QStackedWidget 代替您的 QFrame .

一个简单的例子:

import sys
from PySide import QtGui

class Window(QtGui.QWidget):
def __init__(self, parent=None):
super(Window, self).__init__(parent)

self.textEdit = QtGui.QTextEdit('Text Edit')
self.listWidget = QtGui.QListWidget()
self.listWidget.addItem('List Widget')
self.label = QtGui.QLabel('Label')

self.stackedLayout = QtGui.QStackedLayout()
self.stackedLayout.addWidget(self.textEdit)
self.stackedLayout.addWidget(self.listWidget)
self.stackedLayout.addWidget(self.label)

self.frame = QtGui.QFrame()
self.frame.setLayout(self.stackedLayout)

self.button1 = QtGui.QPushButton('Text Edit')
self.button1.clicked.connect(lambda: self.stackedLayout.setCurrentIndex(0))
self.button2 = QtGui.QPushButton('List Widget')
self.button2.clicked.connect(lambda: self.stackedLayout.setCurrentIndex(1))
self.button3 = QtGui.QPushButton('Label')
self.button3.clicked.connect(lambda: self.stackedLayout.setCurrentIndex(2))

buttonLayout = QtGui.QHBoxLayout()
buttonLayout.addWidget(self.button1)
buttonLayout.addWidget(self.button2)
buttonLayout.addWidget(self.button3)

layout = QtGui.QVBoxLayout(self)
layout.addLayout(buttonLayout)
layout.addWidget(self.frame)


if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)

w = Window()
w.show()

sys.exit(app.exec_())

关于qt - Pyside 更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268356/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com