普通弹窗
1.关闭事件重写
在子窗口中重写方法,此方法由self.close()触发
def closeEvent(self, event):
event.accept()
# event.ignore()
2.关闭子窗口时发送给主窗口信号
【原理】创建一个信号,在主窗口里定义槽函数
https://blog.csdn.net/weixin_43407838/article/details/91609590
3.禁用窗口最大化最小化,拖动大小
self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowFlags(Qt.WindowMaximizeButtonHint| Qt.WindowCloseButtonHint| Qt.MSWindowsFixedSizeDialogHint)
dialog弹窗
1.designer设计弹窗ui
生成ui_XXX.py
2.dialog 自定义
class myDialog(QDialog,Ui_Dialog):
def __init__(self):
super(myDialog, self).__init__()
self.setupUi(self)
self.i = 0
3.自定义ok\cancel\....
class myDialog(QDialog,Ui_Dialog):
def __init__(self):
super(myDialog, self).__init__()
self.setupUi(self)
self.i = 0
# designer里随便定义一个普通的pushbutton,删掉ok\cancel\..等按钮
self.pushButton.clicked.connect(self.rejectnew)
def rejectnew(self):
if self.i==0:
webbrowser.open("www.baidu.com")
self.reject()
else:
self.reject()
弹窗模式
1.父能动、子能动、都能用(默认)
2.父不动、子能动、子能用
self.setModal(False) # 对话框是否可移动 self.setWindowModality(Qt.ApplicationModal) # 设置父窗口阻塞方式
2.父不动、子不动、子能用
self.setModal(True) # 对话框是否可移动 self.setWindowModality(Qt.ApplicationModal) # 设置父窗口阻塞方式