无法在Pyqt5 Python中配置滚动区域

问题描述

My Application

Complete Code

我希望滚动条会自动填充,以便用户可以看到项目的其余部分。

在我尝试过的突出显示区域

  1. 创建了一个小部件
  2. 在该小部件下添加一个滚动区域
  3. 在滚动区域下添加一个布局元素
  4. 从布局中添加项目。

但是滚动区域不起作用。

#!/usr/bin/python
# -*- coding: utf-8 -*-

from PyQt5 import QtCore,QtGui,QtWidgets


class Ui_MainWindow(object):

    def setupUi(self,MainWindow):
        MainWindow.setobjectName('MainWindow')
        MainWindow.resize(817,588)
        sizePolicy = \
            QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setobjectName('centralwidget')
        self.verticalLayoutWidget = \
            QtWidgets.QWidget(self.centralwidget)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(20,40,761,60))
        self.verticalLayoutWidget.setobjectName('verticalLayoutWidget')
        self.verticalLayout = \
            QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0,0)
        self.verticalLayout.setobjectName('verticalLayout')
        self.gridLayout = QtWidgets.qgridLayout()
        self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
        self.gridLayout.setobjectName('gridLayout')
        self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
        self.label.setobjectName('label')
        self.gridLayout.addWidget(
            self.label,1,QtCore.Qt.AlignLeft,)
        self.searchString = \
            QtWidgets.QLineEdit(self.verticalLayoutWidget)
        self.searchString.setMaximumSize(QtCore.QSize(673,16777215))
        self.searchString.setobjectName('searchString')
        self.gridLayout.addWidget(self.searchString,1)
        self.submit = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.submit.setobjectName('submit')
        self.gridLayout.addWidget(self.submit,2,1)
        self.verticalLayout.addLayout(self.gridLayout)
        self.errorLabel = QtWidgets.QLabel(self.centralwidget)
        self.errorLabel.setGeometry(QtCore.QRect(30,10,751,16))
        self.errorLabel.setText('')
        self.errorLabel.setobjectName('errorLabel')
        self.groupBox = QtWidgets.qgroupbox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(40,140,361,151))
        self.groupBox.setobjectName('groupBox')
        self.serverList = QtWidgets.QListWidget(self.groupBox)
        self.serverList.setEnabled(True)
        self.serverList.setGeometry(QtCore.QRect(10,20,331,121))
        self.serverList.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
        self.serverList.setResizeMode(QtWidgets.QListView.Fixed)
        self.serverList.setobjectName('serverList')
        item = QtWidgets.QListWidgetItem()
        self.serverList.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.serverList.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.serverList.addItem(item)
        self.groupBox_2 = QtWidgets.qgroupbox(self.centralwidget)
        self.groupBox_2.setGeometry(QtCore.QRect(410,151))
        self.groupBox_2.setobjectName('groupBox_2')
        self.autodownload = QtWidgets.QCheckBox(self.groupBox_2)
        self.autodownload.setGeometry(QtCore.QRect(10,30,121,20))
        self.autodownload.setobjectName('autodownload')
        self.specificFileFlag = QtWidgets.QCheckBox(self.groupBox_2)
        self.specificFileFlag.setGeometry(QtCore.QRect(10,60,171,20))
        self.specificFileFlag.setobjectName('specificFileFlag')
        self.downloadSelected = QtWidgets.QPushButton(self.groupBox_2)
        self.downloadSelected.setGeometry(QtCore.QRect(10,97,141,31))
        self.downloadSelected.setobjectName('downloadSelected')
        self.searchArchive = QtWidgets.QCheckBox(self.groupBox_2)
        self.searchArchive.setGeometry(QtCore.QRect(170,20))
        self.searchArchive.setobjectName('searchArchive')
        self.checkBox = QtWidgets.QCheckBox(self.groupBox_2)
        self.checkBox.setGeometry(QtCore.QRect(170,191,21))
        self.checkBox.setobjectName('checkBox')
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(640,540,161,20))
        self.label_2.setobjectName('label_2')
        self.selectedServer = QtWidgets.QLabel(self.centralwidget)
        self.selectedServer.setGeometry(QtCore.QRect(30,120,21))
        self.selectedServer.setText('')
        self.selectedServer.setobjectName('selectedServer')
        self.widget = QtWidgets.QWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(30,300,241))
        self.widget.setobjectName('widget')
        self.scrollArea = QtWidgets.QScrollArea(self.widget)
        self.scrollArea.setGeometry(QtCore.QRect(9,6,731,221))


        self.scrollArea.setobjectName('scrollArea')
        self.scrollAreaWidgetContents = QtWidgets.QWidget()
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0,729,219))
        self.scrollAreaWidgetContents.setobjectName('scrollAreaWidgetContents'
                )
        self.formlayoutWidget = \
            QtWidgets.QWidget(self.scrollAreaWidgetContents)
        self.formlayoutWidget.setGeometry(QtCore.QRect(0,221))
        self.formlayoutWidget.setobjectName('formlayoutWidget')
        self.formlayout = QtWidgets.qformlayout(self.formlayoutWidget)
        self.formlayout.setContentsMargins(9,9,9)
        self.formlayout.setobjectName('formlayout')
        self.checkBox_2 = QtWidgets.QCheckBox(self.formlayoutWidget)
        self.checkBox_2.setobjectName('checkBox_2')
        self.formlayout.setWidget(0,QtWidgets.qformlayout.LabelRole,self.checkBox_2)
        self.progressBar = QtWidgets.QProgressBar(self.formlayoutWidget)
        self.progressBar.setProperty('value',24)
        self.progressBar.setobjectName('progressBar')
        self.formlayout.setWidget(0,QtWidgets.qformlayout.FieldRole,self.progressBar)
        self.checkBox_3 = QtWidgets.QCheckBox(self.formlayoutWidget)
        self.checkBox_3.setobjectName('checkBox_3')
        self.formlayout.setWidget(1,self.checkBox_3)
        self.progressBar_2 = \
            QtWidgets.QProgressBar(self.formlayoutWidget)
        self.progressBar_2.setProperty('value',24)
        self.progressBar_2.setobjectName('progressBar_2')
        self.formlayout.setWidget(1,self.progressBar_2)
        self.checkBox_4 = QtWidgets.QCheckBox(self.formlayoutWidget)
        self.checkBox_4.setobjectName('checkBox_4')
        self.formlayout.setWidget(2,self.checkBox_4)
        self.progressBar_3 = \
            QtWidgets.QProgressBar(self.formlayoutWidget)
        self.progressBar_3.setProperty('value',24)
        self.progressBar_3.setobjectName('progressBar_3')
        self.formlayout.setWidget(2,self.progressBar_3)
        self.checkBox_5 = QtWidgets.QCheckBox(self.formlayoutWidget)
        self.checkBox_5.setobjectName('checkBox_5')
        self.formlayout.setWidget(3,self.checkBox_5)
        self.progressBar_4 = \
            QtWidgets.QProgressBar(self.formlayoutWidget)
        self.progressBar_4.setProperty('value',24)
        self.progressBar_4.setobjectName('progressBar_4')
        self.formlayout.setWidget(3,self.progressBar_4)
        count = 6
        c = 0
        checkBox = []
        while count < 10:
            checkBox.append(QtWidgets.QCheckBox(self.formlayoutWidget))
            checkBox[c].setobjectName('checkBox_' + str(c))
            checkBox[c].setText('test_' + str(c))

            
            self.formlayout.setWidget(count,checkBox[c])

            
            self.formlayout.setWidget(count,QtWidgets.QProgressBar(self.formlayoutWidget))
            count = count + 1
            c = c + 1
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setobjectName('statusbar')
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self,MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setwindowTitle(_translate('MainWindow','MainWindow'
                                  ))
        self.label.setText(_translate('MainWindow','<html><head/><body><p><span style=" font-weight:600; color:#000000;">Search String</span><span style=" font-weight:600; color:#ff0000;">*</span></p></body></html>'
                           ))
        self.submit.setText(_translate('MainWindow','Search'))
        self.groupBox.setTitle(_translate('MainWindow','Server List'))
        __sortingEnabled = self.serverList.isSortingEnabled()
        self.serverList.setSortingEnabled(False)
        item = self.serverList.item(0)
        item.setText(_translate('MainWindow','TVOL'))
        item = self.serverList.item(1)
        item.setText(_translate('MainWindow','QA2'))
        item = self.serverList.item(2)
        item.setText(_translate('MainWindow','CVOL'))
        self.serverList.setSortingEnabled(__sortingEnabled)
        self.groupBox_2.setTitle(_translate('MainWindow','Other Configuration'))
        self.autodownload.setToolTip(_translate('MainWindow','<html><head/><body><p><br/></p></body></html>'))
        self.autodownload.setText(_translate('MainWindow','Auto Download'))
        self.specificFileFlag.setToolTip(_translate('MainWindow','<html><head/><body><p>write the file name in &quot;Search String&quot; and Click on Search Button</p></body></html>'
                ))
        self.specificFileFlag.setText(_translate('MainWindow','Download Specific file'))
        self.downloadSelected.setText(_translate('MainWindow','Download Selected'))
        self.searchArchive.setText(_translate('MainWindow','Search in Archive'))
        self.checkBox.setToolTip(_translate('MainWindow','<html><head/><body><p>This option will try to compress the file in server before downloading</p></body></html>'
                                 ))
        self.checkBox.setText(_translate('MainWindow','Compress Before Download'))
        self.label_2.setText(_translate('MainWindow','<html><head/><body><p><span style=" color:#969696;">Created by - Sudipto Khan</span></p></body></html>'
                             ))
        self.checkBox_2.setText(_translate('MainWindow','CheckBox'))
        self.checkBox_3.setText(_translate('MainWindow','CheckBox'))
        self.checkBox_4.setText(_translate('MainWindow','CheckBox'))
        self.checkBox_5.setText(_translate('MainWindow','CheckBox'))


if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)