import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class SecondWindow(QWidget):
def __init__(self, parent=None):
super(SecondWindow, self).__init__(parent)
self.resize(200, 200)
self.setStyleSheet("background: black")
def handle_click(self):
if not self.isVisible():
self.show()
def handle_close(self):
self.close()
class FirstWindow(QWidget):
close_signal = pyqtSignal()
def __init__(self, parent=None):
# super這個用法是調用父類的構造函數
# parent=None表示默認沒有父Widget,如果指定父親Widget,則調用之
super(FirstWindow, self).__init__(parent)
self.resize(100, 100)
self.btn = QToolButton(self)
self.btn.setText("click")
# def Test1(self):
# self.s = SecondWindow()
def Test(self):
self.s = SecondWindow()
self.btn.clicked.connect(self.s.handle_click)
self.show()
# def closeEvent(self, event):
# self.close_signal.emit()
# self.close()
# class Realized:
# def __init__(self):
# self.ex = FirstWindow()
# self.s = SecondWindow()
# def WidgetShow(self):
# self.ex.btn.clicked.connect(self.s.handle_click)
if __name__ == "__main__":
App = QApplication(sys.argv)
# a = Realized()
# a.WidgetShow()
# a.ex.show()
ex = FirstWindow()
ex.Test()
# s = SecondWindow()
# ex.btn.clicked.connect(s.handle_click)
# ex.btn.clicked.connect(ex.hide)
# ex.close_signal.connect(ex.close)
# ex.show()
sys.exit(App.exec_())