免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3857 | 回复: 2
打印 上一主题 下一主题

pyqt4 tableWidget cellChanged 的使用方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-06 11:19 |只看该作者 |倒序浏览
在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)

论坛徽章:
0
2 [报告]
发表于 2014-11-07 12:32 |只看该作者
是这样吗?
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-

  3. import sys
  4. from PyQt4.QtGui import *
  5. from PyQt4.QtCore import *


  6. class Example(QWidget):
  7.    
  8.     def __init__(self):
  9.         super(Example, self).__init__()
  10.         
  11.         self.initUI()
  12.         
  13.     def initUI(self):
  14.         self.btn = QPushButton('Button', self)
  15.         self.btn.resize(self.btn.sizeHint())

  16.         self.lb = QLabel('...',self)
  17.         
  18.         #create the 5x5 table...
  19.         self.table = QTableWidget(5,5,self)
  20.         map(lambda (row,col): self.createCheckItem(self.table, row, col),
  21.            [(row, col) for row in range(0, 5) for col in range(0, 5)])

  22.         vbox = QVBoxLayout()
  23.         vbox.addWidget(self.btn)
  24.         vbox.addWidget(self.lb)
  25.         vbox.addWidget(self.table)
  26.         self.setLayout(vbox)  

  27.         #...and connect our signal handler to the cellChanged(int, int) signal
  28.         QObject.connect(self.table, SIGNAL("cellChanged(int, int)"), self.myCellChanged)

  29.         self.setGeometry(300, 300, 600, 300)
  30.         self.setWindowTitle('nothing...')   
  31.         self.show()
  32.         
  33.     #signal handler
  34.     def myCellChanged(self,row, col):
  35.         #print row, col
  36.         #print self.table.currentItem().text()
  37.         self.lb.setText(self.table.currentItem().text())

  38.     #just a helper function to setup the table
  39.     def createCheckItem(self,table, row, col):
  40.         check = QTableWidgetItem("Test")
  41.         check.setCheckState(Qt.Checked)
  42.         table.setItem(row,col,check)

  43. def main():
  44.    
  45.     app = QApplication(sys.argv)
  46.     ex = Example()
  47.     sys.exit(app.exec_())


  48. if __name__ == '__main__':
  49.     main()
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-11-09 22:41 |只看该作者
大概是这个意思,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP