#bug就是被多次彈出的第二個子視窗只有在第一次能通過關閉按鈕信號吧視窗關閉了。程式不退出再彈出的第二個子視窗關閉按鈕信號不能關閉視窗。哪位大佬能幫我看看怎么回事。代碼如下:
from PySide2.QtWidgets import QWidget,QApplication,QPushButton,QLabel
import sys
from PySide2.QtCore import Signal
class secondWindow(QWidget): #定義第二個彈出的視窗
def __init__(self):
super().__init__()
self.init()
def init(self):
self.setWindowTitle('第二個視窗')
self.setGeometry(500,200,500,500)
self.label = QLabel(self)
self.label.setText('這是第二個視窗')
self.btn = QPushButton('關閉',self)
self.btn.setGeometry(100,100,100,20)
self.btn.clicked.connect(self.close_window)
def close_window(self):
print('關閉第二個視窗的按鈕信號已經發出')
self.close()
class firstWindow(QWidget): #定義第一個彈出的視窗
second_signal = Signal()
def __init__(self):
super().__init__()
self.init()
def init(self):
self.setWindowTitle('第一個視窗')
self.resize(300,300)
self.label = QLabel(self)
self.label.setText('這是第一個視窗')
self.btn = QPushButton('新視窗',self)
self.btn.setGeometry(100,100,100,20)
self.btn.clicked.connect(self.show_new_window)
def show_new_window(self):
self.second_signal.emit() #自定義第二個視窗彈出的信號槽
class window(QWidget): #定義主視窗
def __init__(self):
super().__init__()
self.initui()
def initui(self):
self.setWindowTitle('視窗測驗')
self.resize(500,500)
self.btn = QPushButton('準備彈出新視窗',self)
self.btn.setGeometry(100,100,100,20)
self.btn.clicked.connect(self.show_new_window)
def show_new_window(self):
self.first = firstWindow() #實體化第一個彈出的敞口
self.first.show()
self.first.second_signal.connect(self.show_second_window) #第一個彈出視窗的自定義發出的信號槽,用來彈出第二個視窗
def show_second_window(self):
# print('第二個視窗信號已經發出準備彈出')
self.second = secondWindow() #實體化第二個彈出的視窗
self.second.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
mywindow = window()
mywindow.show()
app.exec_()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/76363.html
上一篇:求出占比后,df['占比'].sum() 為什么是這種形式啊,求大神幫助。
下一篇:求助:pycharm警告
