找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2210|回复: 0

[求助] pyqt5 下拉列表comboBox 信号问题

0

主题

0

帖子

0

积分

贫民

积分
0
teyying 发表于 2018-12-25 18:30:51 | 显示全部楼层 |阅读模式
本帖最后由 teyying 于 2018-12-25 18:42 编辑

自己本来就是业余的新手,三个月前的练手项目,这两天打开要修改东西,忘了好多。我想把创建 comboBox 之后的代码换到另一个方法内,self.comboBox.activated[int].connect(self.connectComboBox)却不执行了。麻烦朋友帮看一下是什么原因:

def setupUi(self,parent):               
      widget = QWidget()   
      widget.setObjectName('Ui_Chinese')   
      parent.setCentralWidget(widget)   
      self.comboBox = QComboBox(widget)        
      self.comboBox.setGeometry(10, 200, 155, 25)        
      self.comboBox.setView(QListView())         
      self.comboBox.addItems(['选择题型', '汉字学习', '拼音学习', '故事阅读'])        
      self.comboBox.activated[int].connect(self.connectComboBox)        
      self.comboBox.setMaxVisibleItems(10)        
      # 只想要以上代码,但是 self.comboBox.activated[int].connect(self.connectComboBox)没有进入槽函数,按理说以下代码不影响comboBox的创建及连接信号槽。   

      self.scroll = QScrollArea(widget)                  
      self.vbar = self.scroll.verticalScrollBar()         
      self.frameData = QFrame()        
      self.frameData.setObjectName('frameData')        
      gridData = QGridLayout()        
      self.frameData.setLayout(gridData)        
      hanziData = json.load(open('chineseData.json', 'r', encoding='utf-8'))        
      row = 0        
      column = 0        
      for hanzi in hanziData:            
            btn = QPushButton(hanzi)            
            btn.setFixedSize(100, 100)            
            btn.clicked.connect(self.connectframeData(hanzi))            
            gridData.addWidget(btn, row, column)        
           # 我一句一句试着,结果是到这一句以上补上的话,self.comboBox.activated[int].connect(self.connectComboBox)就执行槽函数,少了 gridData.addWidget(btn, row, column)这句都不行,后面的怎么添加都不影响。      

            column += 1            
            if column == 5:               
                 row += 1               
                 column = 0        
      self.frameData.setMinimumSize(540, (row+1)*100)        
      self.scroll.setGeometry(350, 200, 562, 430)         
      self.scroll.setWidget(self.frameData)               
      self.scroll.setAutoFillBackground(True)        
      def connectComboBox(self, index):        
            if index == 1:            
                print(1)   
            else:     
                print(3)     
            if index == 2:     
                print(2)

麻烦朋友们帮帮忙,三个月不弄这都快忘完了,谢谢大佬了,我就是一业余的。







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表