我有一些数据想在QtTableWidget. 我希望能够选择表格的特定行,并根据所选行执行函数。列并不重要。
这是我正在使用的数据示例
Id | Test name | Owner | Script source
---|----------- |-------|--------------
1 | Login | 1 | test_login_s
2 | Logout | 1 | test_logout_s
3 | User > Edit | 1 | test_user_edit_s
以下所有代码都是从这一行执行的retranslateUI
self.btnRun.clicked.connect(self.run_selected_test)
最初,我尝试了以下方法:
row = self.tblTable.currentRow()
cell = self.tblTable.itemAt(row, 3).text()
这将返回1, 所在的单元格,0,0无论选择了哪个单元格。查看QTableWidget 类参考,我注意到它itemAt需要两个整数和returns 0 if the specified point is not covered by an item in the table widget.
之后,我将代码稍微修改为:
cell = self.tblTable.itemAt(1, 1).text()
那并没有解决问题。
为了进一步测试这一点,我决定检查是否currentRow并且currentColumn正在按预期进行更新。
row = self.tblTable.currentRow()
> 4
> 17
column = self.tblTable.currentColumn()
> 0
> 6
我已经能够像这样创建一个解决方法
if row == 0:
do_stuff()
elif row == 1:
do_stuff()
elif row == 2:
do_stuff()
elif row == 3:
这种方法的问题是有超过 80 行。对于大于 5 的任何东西,这似乎都是低效的。
