Ame*_*men 5 python pyqt pyqt4 python-3.x
当前选择发生变化时,QTableWidget的信号是什么?如何为其分配一个插槽?
你想要的itemSelectionChanged信号:
只要选择发生变化,就会发出此信号.
您可以通过执行以下操作来使用此功能:
self.itemSelectionChanged.connect(self.print_row)
Run Code Online (Sandbox Code Playgroud)
self.print_row每次选择更改时,都会调用(这是您创建的函数).
一个非常基本的例子:
import sys
from PyQt4 import QtGui, QtCore
lista = ['r1c1', 'r1c2', 'r1c3']
listb = ['r2c1', 'r2c2', 'r1c3']
listc = ['r3c1', 'r3c2', 'r3c3']
mystruct = {'row1':lista, 'row2':listb, 'row3':listc}
class MyTable(QtGui.QTableWidget):
def __init__(self, thestruct, *args):
QtGui.QTableWidget.__init__(self, *args)
self.data = thestruct
n = 0
for key in self.data:
m = 0
for item in self.data[key]:
newitem = QtGui.QTableWidgetItem(item)
self.setItem(m, n, newitem)
m += 1
n += 1
self.itemSelectionChanged.connect(self.print_row)
def print_row(self):
items = self.selectedItems()
print(str(items[0].text()))
def main(args):
app = QtGui.QApplication(args)
table = MyTable(mystruct, 3, 3)
table.show()
sys.exit(app.exec_())
if __name__=="__main__":
main(sys.argv)
Run Code Online (Sandbox Code Playgroud)
这会创建一个这样的表:

当您选择任何单元格时,它将打印出单元格中的文本.请注意,此打印功能假定您一次只能进行一个选择.该selectedItems()函数返回所选项的列表.我只使用此示例中的第一个索引.
| 归档时间: |
|
| 查看次数: |
8712 次 |
| 最近记录: |