有窗户main
和 win
如果窗口打开,如果它关闭,则win
写入控制台。"окно открыто"
"окно закрыто"
怎么做?
代码示例:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_main(object):
def setupUi(self, main):
main.setObjectName("main")
main.resize(400, 300)
self.label = QtWidgets.QLabel(main)
self.label.setGeometry(QtCore.QRect(20, 20, 111, 41))
self.label.setStyleSheet("font: 87 16pt \"Arial Black\";")
self.label.setObjectName("label")
self.pushButton_1 = QtWidgets.QPushButton(main)
self.pushButton_1.setGeometry(QtCore.QRect(10, 10, 50, 31))
self.pushButton_1.setStyleSheet("font: 87 14pt \"Arial Black\";")
self.pushButton_1.setObjectName("pushButton")
self.retranslateUi(main)
QtCore.QMetaObject.connectSlotsByName(main)
def retranslateUi(self, main):
_translate = QtCore.QCoreApplication.translate
main.setWindowTitle(_translate("main", "Form"))
self.label.setText(_translate("main", "main"))
self.pushButton_1.setText(_translate("main", "нажать"))
class Ui_window_1(object):
def setupUi(self, window_1):
window_1.setObjectName("window_1")
window_1.resize(400, 300)
self.label = QtWidgets.QLabel(window_1)
self.label.setGeometry(QtCore.QRect(20, 20, 111, 41))
self.label.setStyleSheet("font: 87 16pt \"Arial Black\";")
self.label.setObjectName("label")
self.retranslateUi(window_1)
QtCore.QMetaObject.connectSlotsByName(window_1)
def retranslateUi(self, window_1):
_translate = QtCore.QCoreApplication.translate
window_1.setWindowTitle(_translate("window_1", "Form"))
self.label.setText(_translate("window_1", "window_1"))
class Win(QtWidgets.QWidget, Ui_window_1):
def __init__(self, parent=None):
super(Win, self).__init__(parent)
class Main(QtWidgets.QWidget, Ui_main):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
b = #определение открыто ли окно или нет
if b == True:
print("Окно открыто")
else:
print("Окно закрыто")
self.setupUi(self)
self.pushButton_1.clicked.connect(self.Win_f)
def Win_f(self):
self.wmain = Win()
self.wmain.show()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Main()
w.show()
sys.exit(app.exec_())
我不太明白你想要什么?
Main
您想在构建窗口以进一步显示时开始检查主窗口构造函数中的某些内容吗?这是不对的。您需要阅读有关
QEvent Class
. 该类QEvent
是所有事件类的基类。事件对象包含事件参数。 https://doc.qt.io/qt-5/qevent.html#Type-enum点击窗户,看看发生了什么。