V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Teyying
V2EX  ›  问与答

pyqt5 comboBox 问题

  •  
  •   Teyying · 2018-12-25 17:33:13 +08:00 · 1589 次点击
    这是一个创建于 1949 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己本来就是业余的新手,三个月前的练手项目,这两天打开要修改东西,忘了好多。我想把创建 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)没有进入槽函数
    
        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)
            # self.scroll.show()
            # self.frameControl.show()
        else:
            print(3)
            # self.scroll.hide()
            # self.frameControl.hide()
        if index == 2:
            print(2)
    

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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2205 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:31 · PVG 08:31 · LAX 17:31 · JFK 20:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.