我用QTableWidget
类创建了一个简单的表,并插入了一些数据
我认为在表上迭代是相当容易的,就像
for item in self.table_widget.items():
print(item)
这段代码显然不起作用,但是是否有一种python方式来迭代所创建表中的项? 例如,打印第一列中的所有项目
到目前为止,我还没有找到关于如何在qt中执行该操作的有用文档
在下面的代码中,我设法从当前选定的单元格中获取数据,但这不是我想要的输出
import sys
from PyQt5 import QtWidgets as qtw
from PyQt5 import QtCore as qtc
from PyQt5 import QtGui as qtg
class LambdaTableWidget(qtw.QWidget):
'''
Main Window mit
'''
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# your code will go here
# interface
# position
qtRectangle = self.frameGeometry()
centerPoint = qtw.QDesktopWidget().availableGeometry().center()
qtRectangle.moveCenter(centerPoint)
self.move(qtRectangle.topLeft())
# size
self.resize(700, 410)
# frame title
self.setWindowTitle("QTableWidget Test")
# heading
heading_label = qtw.QLabel('add Widget')
heading_label.setAlignment(qtc.Qt.AlignHCenter | qtc.Qt.AlignTop)
# add Button
self.addwidget_button = qtw.QPushButton("add Widget")
self.test_button = qtw.QPushButton("test feature")
# table Widget
self.table_widget = qtw.QTableWidget(12 , 3)
self.table_widget.removeRow(-1)
self.table_widget.insertRow(-1)
# layout
self.main_layout = qtw.QGridLayout()
self.main_layout.addWidget(self.addwidget_button, 0, 0)
self.main_layout.addWidget(self.test_button, 1, 0)
self.main_layout.addWidget(self.table_widget,2,0)
self.setLayout(self.main_layout)
self.show()
# functionality
self.test_button.clicked.connect(self.iterateover)
def iterateover(self):
row = self.table_widget.currentRow()
colum = self.table_widget.currentColumn()
value = self.table_widget.item(row,colum)
value = value.text()
print(value)
def iterate(self):
for item in self.table_widget.items():
print(item)
if __name__ == '__main__':
app = qtw.QApplication(sys.argv)
w = LambdaTableWidget()
sys.exit(app.exec_())
相关问题 更多 >
编程相关推荐