窗口显示最前
self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
子窗口阻塞父窗口(不关闭子窗口,则无法操作父窗口)
self.子窗口.setWindowModality(QtCore.Qt.ApplicationModal)
消息弹框
1、重写QMessageBox(调整按钮大小)
from PyQt5 import QtWidgets
class MyMessageBox(QtWidgets.QMessageBox):
def __init__(self):
super.__init__()
self.setStyleSheet(
"QPushButton {font: bold 72px;width: 300px;height: 160px;}")
def show_box(obj, title='', message='', btn_n=False):
message_box = QtWidgets.QMessageBox(obj)
message_box.setStyleSheet(
"QPushButton {font: bold 42px;width: 200px;height: 80px;border-radius:40px;background-color: rgb(85, 170, 255);}")
message_box.setWindowTitle(title)
message_box.setText(message)
if btn_n:
message_box.setStandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
button_n = message_box.button(QtWidgets.QMessageBox.No)
button_n.setText('取消')
else:
message_box.setStandardButtons(QtWidgets.QMessageBox.Yes)
button_y = message_box.button(QtWidgets.QMessageBox.Yes)
button_y.setText('确定')
message_box.exec_()
if message_box.clickedButton() == button_y:
return True
elif btn_n and message_box.clickedButton() == button_n:
return False
eg.
reply = show_box(self, "提示", f"<font size='17' color='red'>确定关闭窗口么?</font>", btn_n=True)
if reply:
sys.exit(app.exec_())