Как сделать окно прозрачным в PyQt5 на Raspberry pi? - PullRequest
1 голос
/ 07 марта 2019

У меня в основном 2 вопроса. Я создаю приложение PyQt5, где есть mainwindow (), который я создал с помощью mdi. Мои подокна - это аналоговые часы и 15 подокон по 14 кнопок. Когда кнопка в подокне нажата, она откроет другое подокно, и текущее подокно должно закрыться. Каждое из 16 подокон написано в своем собственном классе, и я вызываю их из класса основного окна.

widget = analogclock()
widget1 = Example()

1) AnalogClock должен постоянно работать в фоновом режиме в главном окне, а другие подокна должны быть прозрачными, чтобы независимо от того, какое подокно было открыто, аналоговые часы должны быть видны в фоновом режиме. Я испробовал все возможные инструкции по прозрачности в коде, но вместо прозрачности я получаю черный фон. Как сделать прозрачным подокно? Я использую Raspberry Pi модуль 3b на ОС Linux.

2) Я пытаюсь закрыть подокно из другого метода того же класса. Я использую инструкции

class mainwindow(QMainWindow):
    def __init__(self, parent = None):
        QMainWindow.__init__(self, parent)
        self.centralwidget = QWidget(self)
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setCentralWidget(self.centralwidget)
        self.centralwidget.setLayout(QVBoxLayout(self.centralwidget))

        self.mdiArea = QMdiArea(self.centralwidget)
        self.centralwidget.layout().addWidget(self.mdiArea)
        self.resize(500, 500)
        subWindow1 = QMdiSubWindow(self)

        widget1 = button.Example()

        subWindow1.setWidget(widget1)
        subWindow1.setFixedSize(310,255)

        subWindow1.move(100,100)
        subWindow1.setWindowFlags(Qt.FramelessWindowHint)
        self.mdiArea.addSubWindow(subWindow1)
        subWindow1.show()

    def c1(self):
        subwindow1.close() 

Эта инструкция выдает ошибку, поскольку subwindow1 не определено, поэтому я использовал

        mainwindow.__init__.subwindow1.close()

или

        mainwindow.__init__.widget1.close()

Я получаю сообщение об ошибке, так как функция не имеет атрибута 'subwindow1' или 'widget1' соответственно.

    def Tab1(self): #I'm calling this from a button in Example Class
        mainwindow.c1(self)

Итак, в конечном итоге я хочу закрыть подокно1, чтобы я мог создать новое подокно2 ..

P.S .: Я не набирал код, так как он был слишком длинным с 15 классами по 14 кнопок и методом для каждой кнопки.

Спасибо за вашу помощь ..

Это несколько скриншотов, связанных с выводом ..

2019-03-07-125048_1184x624_scrot.png

2019-03-07-125058_1184x624_scrot.png

...