Python pyqt和table小部件清除内容
我是PYQT的新手,我正在尝试去感受它。我试图用5个不同的按钮填充一个表格小部件。我需要清理出每一个按钮之间的表按下,但想离开我的标题。我试过一个tablewidget clearcontents。但这会清除所有内容,我不确定该将其正确放置在何处,以便在每次按下按钮之前清除内容,从而引入新信息Python pyqt和table小部件清除内容,python,pyqt4,Python,Pyqt4,我是PYQT的新手,我正在尝试去感受它。我试图用5个不同的按钮填充一个表格小部件。我需要清理出每一个按钮之间的表按下,但想离开我的标题。我试过一个tablewidget clearcontents。但这会清除所有内容,我不确定该将其正确放置在何处,以便在每次按下按钮之前清除内容,从而引入新信息 try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): retu
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(761, 637)
self.pushButton = QtGui.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(0, 550, 201, 31))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.pushButton.clicked.connect(self.get_output1_statement)
self.pushButton_2 = QtGui.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(0, 580, 201, 31))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.pushButton.clicked.connect(self.get_output2_statement)
self.pushButton_3 = QtGui.QPushButton(Form)
self.pushButton_3.setGeometry(QtCore.QRect(0, 610, 201, 31))
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.pushButton_3.clicked.connect(self.get_output3_statement)
self.pushButton_4 = QtGui.QPushButton(Form)
self.pushButton_4.setGeometry(QtCore.QRect(250, 580, 201, 31))
self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
self.pushButton.clicked.connect(self.get_output4_statement)
self.pushButton_5 = QtGui.QPushButton(Form)
self.pushButton_5.setGeometry(QtCore.QRect(510, 580, 201, 31))
self.pushButton_5.setObjectName(_fromUtf8("pushButton_5"))
self.pushButton.clicked.connect(self.get_output5_statement)
self.tableWidget = QtGui.QTableWidget(Form)
self.tableWidget.setGeometry(QtCore.QRect(0, 0, 741, 551))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(5)
sizePolicy.setVerticalStretch(5)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(50)
self.tableWidget.setItem(0,0,QtGui.QTableWidgetItem("name"))
self.tableWidget.setItem(0,1,QtGui.QTableWidgetItem("column_1"))
self.tableWidget.setItem(0,2,QtGui.QTableWidgetItem("column_2"))
self.tableWidget.setItem(0,3,QtGui.QTableWidgetItem("column_3"))
self.tableWidget.setItem(0,4,QtGui.QTableWidgetItem("column_4"))
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.pushButton.setText(_translate("Form", "button1", None))
self.pushButton_2.setText(_translate("Form", "button2", None))
self.pushButton_3.setText(_translate("Form", "button3", None))
self.pushButton_4.setText(_translate("Form", "button4", None))
self.pushButton_5.setText(_translate("Form", "button5", None))
当您以适当的方式设置表格标题时,可以使用
clearContents()
方法
更改:
self.tableWidget.setItem(0,0,QtGui.QTableWidgetItem("name"))
self.tableWidget.setItem(0,1,QtGui.QTableWidgetItem("column_1"))
self.tableWidget.setItem(0,2,QtGui.QTableWidgetItem("column_2"))
self.tableWidget.setItem(0,3,QtGui.QTableWidgetItem("column_3"))
self.tableWidget.setItem(0,4,QtGui.QTableWidgetItem("column_4"))
致:
在注释后编辑额外代码
也许这对你有帮助?我尽量保留你的代码
class Ui_Form(QtGui.QDialog):
def __init__(self, parent=None):
super(Ui_Form, self).__init__(parent)
self.setObjectName(_fromUtf8("Form"))
self.resize(761, 637)
self.pushButton = QtGui.QPushButton()
self.pushButton.setGeometry(QtCore.QRect(0, 550, 201, 31))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.connect(self.pushButton, QtCore.SIGNAL("released()"), self.get_output1_statement)
self.tableWidget = QtGui.QTableWidget()
self.tableWidget.setGeometry(QtCore.QRect(0, 0, 741, 551))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(5)
sizePolicy.setVerticalStretch(5)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(50)
self.tableWidget.setHorizontalHeaderItem(0, QtGui.QTableWidgetItem("name"))
layout = QtGui.QVBoxLayout()
layout.addWidget(self.tableWidget)
layout.addWidget(self.pushButton)
self.setLayout(layout)
for i in range(1, 5):
self.tableWidget.setHorizontalHeaderItem(i, QtGui.QTableWidgetItem("column_{0}".format(i)))
self.retranslateUi()
def retranslateUi(self):
self.setWindowTitle(_translate("Form", "Form", None))
self.pushButton.setText(_translate("Form", "button1", None))
def get_output1_statement(self):
self.tableWidget.clearContents()
self.tableWidget.setItem(0,0,QtGui.QTableWidgetItem("add some data"))
app = QtGui.QApplication(sys.argv)
form = Ui_Form()
form.show()
app.exec_()
当您以适当的方式设置表格标题时,可以使用
clearContents()
方法
更改:
self.tableWidget.setItem(0,0,QtGui.QTableWidgetItem("name"))
self.tableWidget.setItem(0,1,QtGui.QTableWidgetItem("column_1"))
self.tableWidget.setItem(0,2,QtGui.QTableWidgetItem("column_2"))
self.tableWidget.setItem(0,3,QtGui.QTableWidgetItem("column_3"))
self.tableWidget.setItem(0,4,QtGui.QTableWidgetItem("column_4"))
致:
在注释后编辑额外代码
也许这对你有帮助?我尽量保留你的代码
class Ui_Form(QtGui.QDialog):
def __init__(self, parent=None):
super(Ui_Form, self).__init__(parent)
self.setObjectName(_fromUtf8("Form"))
self.resize(761, 637)
self.pushButton = QtGui.QPushButton()
self.pushButton.setGeometry(QtCore.QRect(0, 550, 201, 31))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.connect(self.pushButton, QtCore.SIGNAL("released()"), self.get_output1_statement)
self.tableWidget = QtGui.QTableWidget()
self.tableWidget.setGeometry(QtCore.QRect(0, 0, 741, 551))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(5)
sizePolicy.setVerticalStretch(5)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(50)
self.tableWidget.setHorizontalHeaderItem(0, QtGui.QTableWidgetItem("name"))
layout = QtGui.QVBoxLayout()
layout.addWidget(self.tableWidget)
layout.addWidget(self.pushButton)
self.setLayout(layout)
for i in range(1, 5):
self.tableWidget.setHorizontalHeaderItem(i, QtGui.QTableWidgetItem("column_{0}".format(i)))
self.retranslateUi()
def retranslateUi(self):
self.setWindowTitle(_translate("Form", "Form", None))
self.pushButton.setText(_translate("Form", "button1", None))
def get_output1_statement(self):
self.tableWidget.clearContents()
self.tableWidget.setItem(0,0,QtGui.QTableWidgetItem("add some data"))
app = QtGui.QApplication(sys.argv)
form = Ui_Form()
form.show()
app.exec_()
这是可怕的保持标题。在每次按下按钮之前,我将在何处插入清除按钮以清除桌子?当我尝试时,我可以让它只清除一次你说的“在”每个按钮按下之前是什么意思?是否要在按下按钮时清除表格?抱歉,是的,在按下按钮时清除表格,然后在同一个“单击”按钮上再次使用当前的self填充表格。例如get\u output2\u语句OK,我还是发布了一些示例。。(在阅读您的评论之前发布)。成功保留标题真是太棒了。在每次按下按钮之前,我将在何处插入清除按钮以清除桌子?当我尝试时,我可以让它只清除一次你说的“在”每个按钮按下之前是什么意思?是否要在按下按钮时清除表格?抱歉,是的,在按下按钮时清除表格,然后在同一个“单击”按钮上再次使用当前的self填充表格。例如get\u output2\u语句OK,我还是发布了一些示例。。(在阅读您的评论之前发布)。成功