注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

淘尽网 官方博客

淘尽网http://www.tao3w.com做最好的比价网站

 
 
 

日志

 
 
关于我

淘尽网 http://www.tao3w.com 做最好的比价网站,做最好的数据抓取专家。

网易考拉推荐

QSignalMapper怎么用  

2013-09-01 11:50:05|  分类: python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
请帮忙看看下面的怎么不能调用slotAdd呢?
 
# -*- coding: utf-8 -*- 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
import sys 
import os 
import time
class Test(QDialog): 
    def __init__(self,parent=None): 
        super(Test,self).__init__(parent)
        layout=QGridLayout(self)
        self.windowMapper = QSignalMapper(self)
        self.connect(self.windowMapper, SIGNAL("mapped(QString)"),
                     self, SLOT("slotAdd(QString)"))
        
        for i in range(5):
            buttonText = 'Hello' + str(i)
            button=QPushButton(buttonText)   
            layout.addWidget(button,0,i)
            self.connect(button, SIGNAL("clicked()"), self.windowMapper, SLOT("map()"))
            self.windowMapper.setMapping(button, buttonText)
        
    def slotAdd(self, s):
        print "Hello ", s
            
app=QApplication(sys.argv) 
dlg=Test() 
dlg.show() 
app.exec_()
QSignalMapper怎么用 - jjdoor - 淘尽网 官方博客
jimmykuu 
QSignalMapper怎么用 - jjdoor - 淘尽网 官方博客
11-8-10
参考这两种方式解决:

1.
# 改变下面的写法,这样不需要定义slotAdd是一个槽
#self.connect(self.windowMapper, SIGNAL("mapped(QString)"),
#                     self, SLOT("slotAdd(QString)"))
self.connect(self.windowMapper, SIGNAL("mapped(QString)"),
                      self.slotAdd)

2.
# 用装饰器定义slotAdd是一个槽
@pyqtSlot('QString')
def slotAdd(self, s):
    print "Hello ", s
  评论这张
 
阅读(710)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017