我对 pyside 完全陌生,我的小程序(以及一般的 pyside 布局)有问题。
我拥有的是一个带有一些 QlineEdits、组合框和一个按钮的 UI。在我填写完 Qlines 并按下按钮后,我想要打开一个具有全新布局的新窗口,或者最好清除打开的窗口并根据来自 qlines 的输入使用新布局填充它。也许这是超级基本的,但我无法让它工作。原因是我无法掌握如何在我的 gui 已经设置和显示的情况下替换或添加新东西。
假设我有一个这样的脚本:
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。现在我想清除所有内容并创建 2 个新列,每个列有 10 个 qlines(或类似的东西)。
对不起,如果我含糊不清,或者我只是在重复自己。我又累又烦,英语不是我的第一语言。
我将非常感谢我能得到的任何帮助或朝着正确的方向前进。
编辑:如果使用其他带有标签的小部件或其他东西更容易做到这一点。我想做的就是在收到用户的输入后生成新的小部件。