【发布时间】:2014-09-02 12:31:38
【问题描述】:
我使用 for 循环创建了几个 QLineEdits,并准备创建一个按钮,该按钮可以擦除所有 QLineEdits 中写入的所有内容。这意味着如果我在每个 QLine 中键入一些内容,然后单击按钮可以清除所有行。我的问题是如何编写这样的按钮功能。
这是我的简化版代码。
from PySide import QtGui
from PySide import QtCore
from PySide.QtCore import Signal as pyqtSignal
from PySide.QtCore import Slot as pyqtSlot
import sys
class example(QtGui.QWidget):
def __init__(self, parent= None):
super(example, self).__init__()
grid = QtGui.QGridLayout()
grid.setSpacing(10)
self.widget = QtGui.QWidget()
# set the widget as parent of its own layout
self.layout = QtGui.QGridLayout(self.widget)
for i in range(5):
line = QtGui.QLineEdit()
self.layout.addWidget(line,i,0)
btn = QtGui.QPushButton("Clear All")
self.layout.addWidget(btn,i+1,0)
btn.clicked.connect(self.all_clear)
self.scroll = QtGui.QScrollArea()
# need this so that scrollarea handles resizing
self.scroll.setWidgetResizable(True)
# these two lines may not be needed now
self.scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.scroll.setWidget(self.widget)
grid.addWidget(self.scroll, 3, 0)
self.setLayout(grid)
def all_clear(self):
pass
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
dialog = example()
dialog.show()
sys.exit(app.exec_())
我不知道如何编写按钮功能。如果有人可以提供帮助,请提前致谢。
【问题讨论】:
-
您可以将 OLineEdit 的引用存储在一个列表中,并在按钮正文中单击该列表中每个行编辑的调用清除方法。
-
@Pratham,非常感谢。你的意思是我可以将所有默认值(如空)存储在一个列表中,然后按下清除按钮,这些值设置为默认值吗?如果可能的话,你能给我看一些示例代码吗?
标签: pyside qlineedit qpushbutton