当我点击按钮两次时,Python qgridlayoutwidget变得很奇怪

2024-10-01 22:39:02 发布

您现在位置:Python中文网/ 问答频道 /正文

**-解决-**

您好,我最近做了一个程序,它获取imdb api(非官方的)并生成bbcode

您可以在这里看到我的代码:pastebin

    def _search(self):
    if self.inputBox.text() != '':
        srchRes = json.load(urllib.request.urlopen('http://www.omdbapi.com/?apikey=2ee068f3&s='+self.inputBox.text().replace(" ", "%20")))
        if srchRes['Response'] == 'True':
            self.info.hide()
            self.title1.show()
            self.title1.setText(srchRes['Search'][0]['Title'] + ' (' + srchRes['Search'][0]['Type'].capitalize() + ' ' + srchRes['Search'][0]['Year'] + ')')
            self.sel1.show()
            if int(srchRes['totalResults']) > 1:
                self.title2.show()
                self.title2.setText(srchRes['Search'][1]['Title'] + ' (' + srchRes['Search'][1]['Type'].capitalize() + ' ' + srchRes['Search'][1]['Year'] + ')')
                self.sel2.show()
            else:
                self.title2.hide()
                self.sel2.hide()
                self.title3.hide()
                self.sel3.hide()
                self.title4.hide()
                self.sel4.hide()
                self.title5.hide()
                self.sel5.hide()
                self.title6.hide()
                self.sel6.hide()
                self.title7.hide()
                self.sel7.hide()
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 50))
                Dialog.resize(600, 150)
                return
            if int(srchRes['totalResults']) > 2:
                self.title3.show()
                self.title3.setText(srchRes['Search'][2]['Title'] + ' (' + srchRes['Search'][2]['Type'].capitalize() + ' ' + srchRes['Search'][2]['Year'] + ')')
                self.sel3.show()
            else:
                self.title3.hide()
                self.sel3.hide()
                self.title4.hide()
                self.sel4.hide()
                self.title5.hide()
                self.sel5.hide()
                self.title6.hide()
                self.sel6.hide()
                self.title7.hide()
                self.sel7.hide()
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 100))
                Dialog.resize(600, 200)
                return
            if int(srchRes['totalResults']) > 3:
                self.title4.show()
                self.title4.setText(srchRes['Search'][3]['Title'] + ' (' + srchRes['Search'][3]['Type'].capitalize() + ' ' + srchRes['Search'][3]['Year'] + ')')
                self.sel4.show()
            else:
                self.title4.hide()
                self.sel4.hide()
                self.title5.hide()
                self.sel5.hide()
                self.title6.hide()
                self.sel6.hide()
                self.title7.hide()
                self.sel7.hide()
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 150))
                Dialog.resize(600, 250)
                return
            if int(srchRes['totalResults']) > 4:
                self.title5.show()
                self.title5.setText(srchRes['Search'][4]['Title'] + ' (' + srchRes['Search'][4]['Type'].capitalize() + ' ' + srchRes['Search'][4]['Year'] + ')')
                self.sel5.show()
            else:
                self.title5.hide()
                self.sel5.hide()
                self.title6.hide()
                self.sel6.hide()
                self.title7.hide()
                self.sel7.hide()
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 200))
                Dialog.resize(600, 300)
                return
            if int(srchRes['totalResults']) > 5:
                self.title6.show()
                self.title6.setText(srchRes['Search'][5]['Title'] + ' (' + srchRes['Search'][5]['Type'].capitalize() + ' ' + srchRes['Search'][5]['Year'] + ')')
                self.sel6.show()
            else:
                self.title6.hide()
                self.sel6.hide()
                self.title7.hide()
                self.sel7.hide()
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 250))
                Dialog.resize(600, 350)
                return
            if int(srchRes['totalResults']) > 6:
                self.title7.show()
                self.title7.setText(srchRes['Search'][6]['Title'] + ' (' + srchRes['Search'][6]['Type'].capitalize() + ' ' + srchRes['Search'][6]['Year'] + ')')
                self.sel7.show()
            else:
                self.title7.hide()
                self.sel7.hide()
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 300))
                Dialog.resize(600, 400)
                return
            if int(srchRes['totalResults']) > 7:
                self.title8.show()
                self.title8.setText(srchRes['Search'][7]['Title'] + ' (' + srchRes['Search'][7]['Type'].capitalize() + ' ' + srchRes['Search'][7]['Year'] + ')')
                self.sel8.show()
            else:
                self.title8.hide()
                self.sel8.hide()
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 350))
                Dialog.resize(600, 450)
                return
            if int(srchRes['totalResults']) > 8:
                self.title9.show()
                self.title9.setText(srchRes['Search'][8]['Title'] + ' (' + srchRes['Search'][8]['Type'].capitalize() + ' ' + srchRes['Search'][8]['Year'] + ')')
                self.sel9.show()
            else:
                self.title9.hide()
                self.sel9.hide()
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 400))
                Dialog.resize(600, 500)
                return
            if int(srchRes['totalResults']) > 9:
                self.title10.show()
                self.title10.setText(srchRes['Search'][9]['Title'] + ' (' + srchRes['Search'][9]['Type'].capitalize() + ' ' + srchRes['Search'][9]['Year'] + ')')
                self.sel10.show()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 500))
                Dialog.resize(600, 600)
            else:
                self.title10.hide()
                self.sel10.hide()
                self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 450))
                Dialog.resize(600, 550)
                return
        else:
            self.title1.hide()
            self.sel1.hide()
            self.title2.hide()
            self.sel2.hide()
            self.title3.hide()
            self.sel3.hide()
            self.title4.hide()
            self.sel4.hide()
            self.title5.hide()
            self.sel5.hide()
            self.title6.hide()
            self.sel6.hide()
            self.title7.hide()
            self.sel7.hide()
            self.title8.hide()
            self.sel8.hide()
            self.title9.hide()
            self.sel9.hide()
            self.title10.hide()
            self.sel10.hide()
            Dialog.resize(600, 100)
    else:
            self.title1.hide()
            self.sel1.hide()
            self.title2.hide()
            self.sel2.hide()
            self.title3.hide()
            self.sel3.hide()
            self.title4.hide()
            self.sel4.hide()
            self.title5.hide()
            self.sel5.hide()
            self.title6.hide()
            self.sel6.hide()
            self.title7.hide()
            self.sel7.hide()
            self.title8.hide()
            self.sel8.hide()
            self.title9.hide()
            self.sel9.hide()
            self.title10.hide()
            self.sel10.hide()
            Dialog.resize(600, 100)

上面的代码是我的搜索功能

每次我输入关键字并单击“搜索”按钮时,它似乎工作正常,但单击两次按钮会导致网格布局崩溃。我真的没有发现问题所在

有人能看看我的代码并找出问题吗?如果你能优化我的代码,我会更加感激你。。不一定


Tags: selfsearchifshowelsedialoghidesettext
1条回答
网友
1楼 · 发布于 2024-10-01 22:39:02

我的解决方案

使用QtCore.QRect()时,应注意不要设置位置两次

在我的例子中,我在第66行定义了网格位置,并在函数_search中重新定义了它,这导致了问题。因此,当您重新定义时,您应该像

QtCore.QRect(0, 0, Horizontal_size, Vertical_size)

希望它能帮助别人

相关问题 更多 >

    热门问题