User interface Pyside-按下按钮时更改整个GUI
我是pyside的新手,我的小程序(和pyside的总体布局)有问题 我拥有的是一个带有QlineEdit、组合框和按钮的UI。填写QLINE并按下按钮后,我想打开一个具有全新布局的新窗口,或者最好清除打开的窗口,并根据QLINE的输入使用新布局进行填充。也许这是超基本的,但我不能让它工作。原因是我无法理解如何在已经设置和显示的gui中替换或添加新内容 假设我有这样一个脚本:User interface Pyside-按下按钮时更改整个GUI,user-interface,python-2.7,pyside,qlineedit,User Interface,Python 2.7,Pyside,Qlineedit,我是pyside的新手,我的小程序(和pyside的总体布局)有问题 我拥有的是一个带有QlineEdit、组合框和按钮的UI。填写QLINE并按下按钮后,我想打开一个具有全新布局的新窗口,或者最好清除打开的窗口,并根据QLINE的输入使用新布局进行填充。也许这是超基本的,但我不能让它工作。原因是我无法理解如何在已经设置和显示的gui中替换或添加新内容 假设我有这样一个脚本: import sys import os from PySide import QtCore, QtGui cl
import sys
import os
from PySide import QtCore, QtGui
class BasicGui(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.projectNameLbl1 = QtGui.QLabel('Label1')
self.projectNameLbl2 = QtGui.QLabel('Label2')
self.nextBtn = QtGui.QPushButton("Next")
self.projectNameEdit = QtGui.QLineEdit(self)
self.projectNameEdit2 = QtGui.QLineEdit(self)
grid = QtGui.QGridLayout()
grid.setSpacing(10)
grid.addWidget(self.projectNameLbl1, 2, 0)
grid.addWidget(self.projectNameEdit, 2, 1)
grid.addWidget(self.projectNameLbl2, 3, 0)
grid.addWidget(self.projectNameEdit2, 3, 1)
grid.addWidget(self.nextBtn, 4, 1)
self.setLayout(grid)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('projectCreator')
self.show()
self.nextBtn.clicked.connect(self.nextPressed)
def nextPressed(self):
self.msgBox = QtGui.QMessageBox()
self.msgBox.setText("When this button is pressed I want to generate a new layout")
self.msgBox.exec_()
def main():
app = QtGui.QApplication(sys.argv)
ex = BasicGui()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
假设我在label1旁边的行中输入10,在另一行中输入2,然后按next。现在我想清除所有内容并创建两个新列,每个列中有10个Qline(或类似的内容)
请原谅,我不是说得含糊不清,就是在重复我自己。我又累又烦,英语不是我的第一语言
如果能得到任何帮助或朝着正确的方向努力,我将不胜感激
编辑:如果使用其他带有选项卡的widgetype或其他更好的方法更容易实现这一点。我要做的就是在收到用户输入后生成新的小部件。您要做的是使用
QStackedLayout
[1]
QWidget
setLayout()
QStackedLayout
上QStackedLayout
的setCurrentIndex()
或setCurrentWidget()
函数设置当前布局[1] 您要做的是使用
QStackedLayout
[1]
QWidget
setLayout()
QStackedLayout
上QStackedLayout
的setCurrentIndex()
或setCurrentWidget()
函数设置当前布局