Макет не распространяется на все окно - PullRequest
0 голосов
/ 25 августа 2018

Я кодирую простой экран загрузки на случай, если он понадобится мне позже.Я не использовал PyQt некоторое время, и теперь все идет с попытки и неудачи.Я хотел иметь QProgressBar, который расширяется почти до конца границ.Но вместо этого я получил это:

You can see the very thin progressbar not reaching the right border of the layout.

Что заставляет меня думать, что это макет, который не расширяется.Я хотел бы вашей помощи и опыта!Спасибо!

Мой код:

class LoadingScren(QWidget):

    def __init__(self):
        super().__init__()

        self.windowWidth = 500
        self.windowHeight = 300
        self.backgroundImage = 'bg.jpg'
        self.icon = 'template_icon.png'
        self.iconWidht = 100
        self.iconHeight = 100
        self.headline = 'Headline'
        self.description = """Lorem ipsum dolor sit amet"""

        self.initUI()

    def initUI(self):
        self.setFixedSize(self.windowWidth, self.windowHeight)
        self.setWindowFlag(Qt.FramelessWindowHint)

        imgIcon = QLabel()
        imgIcon.setPixmap(QPixmap(self.icon).scaled(self.iconWidht, self.iconHeight))

        lblHeadline = QLabel()
        lblHeadline.setText(self.headline)
        lblHeadline.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        lblHeadline.setStyleSheet('font-size: 75px')

        lblDescription = QLabel()
        lblDescription.setScaledContents(True)
        lblDescription.setText(self.description)
        lblDescription.setStyleSheet('font-size: 25px')

        progressBar = QProgressBar()
        progressBar.setMaximumHeight(2)
        progressBar.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        headerLayout = QHBoxLayout()
        headerLayout.addWidget(imgIcon)
        headerLayout.addWidget(lblHeadline)

        mainLayout = QVBoxLayout()
        mainLayout.addLayout(headerLayout)
        mainLayout.addWidget(lblDescription)
        mainLayout.addItem(QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding))
        mainLayout.addWidget(progressBar)

        self.setLayout(mainLayout)
        self.show()

1 Ответ

0 голосов
/ 25 августа 2018

использование progressBar.setTextVisible(False)

или

Таблицы стилей Qt progressBar.setStyleSheet(...)

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui     import *
from PyQt5.QtCore    import *

class LoadingScren(QWidget):

    def __init__(self):
        super().__init__()

        self.windowWidth  = 500
        self.windowHeight = 300
        #self.backgroundImage = 'bg.jpg'            
        self.icon = 'qt-logo.png'            #'template_icon.png'
        self.iconWidht  = 100
        self.iconHeight = 100
        self.headline = 'Headline'
        self.description = """Lorem ipsum dolor sit amet"""

        self.initUI()

    def initUI(self):
        self.setFixedSize(self.windowWidth, self.windowHeight)
        self.setWindowFlag(Qt.FramelessWindowHint)

        imgIcon = QLabel()
        imgIcon.setPixmap(QPixmap(self.icon).scaled(self.iconWidht, self.iconHeight))

        lblHeadline = QLabel()
        lblHeadline.setText(self.headline)
        lblHeadline.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        lblHeadline.setStyleSheet('font-size: 75px')

        lblDescription = QLabel()
        lblDescription.setScaledContents(True)
        lblDescription.setText(self.description)
        lblDescription.setStyleSheet('font-size: 25px')

        progressBar = QProgressBar()
        progressBar.setMaximumHeight(2)
        progressBar.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        progressBar.setTextVisible(False)
        # or
        #progressBar.setStyleSheet("""QProgressBar {
        #                              border: 1px solid red;
        #                         }""")

        headerLayout = QHBoxLayout()
        headerLayout.addWidget(imgIcon)
        headerLayout.addWidget(lblHeadline)

        mainLayout = QVBoxLayout()
        mainLayout.addLayout(headerLayout)
        mainLayout.addWidget(lblDescription)
        mainLayout.addItem(QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding))
        mainLayout.addWidget(progressBar)

        self.setLayout(mainLayout)
        self.show()

if __name__ == '__main__':
    app     = QApplication(sys.argv)
    mainWnd = LoadingScren()
    sys.exit(app.exec_())

enter image description here

enter image description here

...