我使用 python 2.7 + qt4.8
如何动态更改窗口中的小部件数量?我需要删除所有小部件并以正确的数量创建新的小部件。testarovaniya 制作了一个简单的脚本:
import sys
from PyQt4 import QtCore, QtGui, uic
class MainForm(QtGui.QDialog):
def __init__(self):
super(MainForm, self).__init__()
uic.loadUi("testQTwindow.ui", self)
self.connect(self.addBtn, QtCore.SIGNAL("clicked()"), self.addBtnClick)
self.connect(self.delBtn, QtCore.SIGNAL("clicked()"), self.delBtnClick)
def addBtnClick(self):
self.tempBtn = QtGui.QPushButton('button')
self.gridLayout_2.addWidget(self.tempBtn)
def delBtnClick(self):
while True:
item = self.gridLayout_2.takeAt(0)
if not item:
break
self.gridLayout_2.removeWidget(item.widget())
app = QtGui.QApplication(sys.argv)
form = MainForm()
form.show()
sys.exit(app.exec_())
并加载此用户界面:https ://yadi.sk/d/jBOmSubYhqbjm
我有两个按钮。一种用于使用 gridLayout 向 QScrollArea 添加按钮。第二个是删除 QScrollArea 中的所有小部件。添加作品。我可以看到如何有新按钮。但是当你按下清洁按钮并没有消失,新的继续出现在旧的上面。旧按钮也可以按下,这表明它们可以工作,而不仅仅是清理重绘窗口的鬼魂。
我尝试repaint()
和update()
功能 - 但它没有效果......
这是一个简单的例子,但即使是他也不工作。而且我以后不需要添加按钮,以及带有一堆元素的整个块。
如何动态添加和删除小部件?