【问题标题】:QTableWidget Current Selection Change SignalQTableWidget 当前选择改变信号
【发布时间】:2015-06-26 09:16:50
【问题描述】:

当当前选择发生变化时,QTableWidget 的信号是什么?如何为其分配插槽?

【问题讨论】:

    标签: python python-3.x pyqt pyqt4


    【解决方案1】:

    你想要itemSelectionChanged 信号:

    只要选择发生变化,就会发出此信号。

    您可以通过执行以下操作来使用它:

    self.itemSelectionChanged.connect(self.print_row)
    

    这将在每次选择更改时调用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)
    

    这会创建一个像这样的表:

    当您选择任何单元格时,它将打印出单元格中的文本。请注意,此打印功能假定您一次只进行一个选择。 selectedItems() 函数返回选定项目的列表。在这个例子中我只使用了第一个索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 2023-03-28
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多