pyqt4 tableWidget cellChanged 的使用方法
在0,0 单元格 变动后,获取这个单元格的字符,在label中输出部分代码如下:(请指点如何改动)
QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL(_fromUtf8("cellChanged(int,int)")), self.out)
QtCore.QObject.connect(self.action1, QtCore.SIGNAL(_fromUtf8("triggered()")), self.test)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def out(self, row, col):
a=self.item(row, col).text()
self.label.setText(a) 是这样吗?#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.btn = QPushButton('Button', self)
self.btn.resize(self.btn.sizeHint())
self.lb = QLabel('...',self)
#create the 5x5 table...
self.table = QTableWidget(5,5,self)
map(lambda (row,col): self.createCheckItem(self.table, row, col),
[(row, col) for row in range(0, 5) for col in range(0, 5)])
vbox = QVBoxLayout()
vbox.addWidget(self.btn)
vbox.addWidget(self.lb)
vbox.addWidget(self.table)
self.setLayout(vbox)
#...and connect our signal handler to the cellChanged(int, int) signal
QObject.connect(self.table, SIGNAL("cellChanged(int, int)"), self.myCellChanged)
self.setGeometry(300, 300, 600, 300)
self.setWindowTitle('nothing...')
self.show()
#signal handler
def myCellChanged(self,row, col):
#print row, col
#print self.table.currentItem().text()
self.lb.setText(self.table.currentItem().text())
#just a helper function to setup the table
def createCheckItem(self,table, row, col):
check = QTableWidgetItem("Test")
check.setCheckState(Qt.Checked)
table.setItem(row,col,check)
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
大概是这个意思,谢谢了
页:
[1]