自己本来就是业余的新手,三个月前的练手项目,这两天打开要修改东西,忘了好多。我想把创建 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)
麻烦朋友们帮帮忙,三个月不弄这都快忘完了,谢谢大佬了,我就是一业余的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.