Как убрать белую рамку вокруг фона? - PullRequest
0 голосов
/ 24 января 2019

Код ниже генерирует окно с черным фоном. К сожалению, фон обрамлен тонкой белой линией.

Я пытался установить другие параметры фона на черный, но это не сработало.

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene


class GraphicsWindow(QGraphicsView):

    def __init__(self, parent=None):
        super(GraphicsWindow, self).__init__(parent)
        scene = QGraphicsScene(self)
        self.setScene(scene)
        self.setBackgroundBrush(Qt.black)

def main():
    app = QApplication(sys.argv)
    graphics_window = GraphicsWindow()
    graphics_window.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Я хотел создать окно с полностью черным фоном, но оно имеет тонкую белую рамку.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы можете добавить стили CSS внутри метода init вашего класса:

    def __init__(self, parent=None):

        super(GraphicsWindow, self).__init__(parent)
        scene = QGraphicsScene(self)
        self.setScene(scene)
        self.setBackgroundBrush(Qt.black)

        self.setStyleSheet("border:0px")
0 голосов
/ 24 января 2019

Вы должны изменить цвет фона QGraphicsView, как, например, с QPalette:

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene


class GraphicsWindow(QGraphicsView):
    def __init__(self, parent=None):
        super(GraphicsWindow, self).__init__(parent)
        scene = QGraphicsScene(self)
        self.setScene(scene)
        self.setBackgroundBrush(Qt.black)
        pal = self.palette()
        pal.setColor(QPalette.Window, Qt.black)
        self.setPalette(pal)

def main():
    app = QApplication(sys.argv)
    graphics_window = GraphicsWindow()
    graphics_window.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
...