我基本上有两个问题。 我正在创建一个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