如何在Raspberry pi上的PyQt5中使窗口透明?

时间:2019-03-07 07:25:02

标签: pyqt5 mdi

我基本上有两个问题。 我正在创建一个PyQt5应用程序,其中有一个mainwindow(),它是使用mdi创建的。 我的子窗口是一个模拟时钟,每个子窗口有15个子窗口,每个子窗口有14个按钮。当按下子窗口中的按钮时,它将打开另一个子窗口,并且当前子窗口应关闭。

16个子窗口中的每一个都是在各自的类中编写的,我从mainwindow类中调用它们。
widget = analogclock()
widget1 = Example()

1)AnalogClock应该在主窗口的后台永久运行,而其他子窗口应该是透明的,以便无论打开哪个子窗口,都应该在后台看到Analogclock。     我已经尝试了代码中所有可能的透明度说明,但没有获得透明度,而是获得了黑色背景。如何使子窗口透明? 我正在Linux操作系统上使用Raspberry Pi模块3b。

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)

所以最终我想关闭subwindow1,以便可以新建subwindow2。

P.S:我没有键入代码,因为它有点冗长,每个类有15个类,每个类有14个按钮,每个按钮都有一个方法。

谢谢您的帮助。

这些是与输出相关的一些屏幕截图。

2019-03-07-125048_1184x624_scrot.png

2019-03-07-125058_1184x624_scrot.png

0 个答案:

没有答案