问题:PyQt5 QMessageBox在前台

时间:2018-11-13 12:27:35

标签: python pyqt5

当我尝试使用Pyqt5 Python 3.5弹出QMessageBox时遇到问题 它在后台而不是前景。 我在这个论坛上尝试了不同的阅读方式,但没有成功。 当我单击“保存”按钮

时,将调用此QMessage。

我的所有代码:

import os
import sys
import numpy as np
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog,QMessageBox
import pyqtgraph as pg
import pyqtgraph.exporters


class Ui_Viewer(QtWidgets.QMainWindow):

    def __init__(self, parent=None):
        self.parent = parent
        super(Ui_Viewer, self).__init__()
        self.central_widget = QtWidgets.QWidget()
        self.setCentralWidget(self.central_widget)

    def createWindow(self):
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
        self.setWindowTitle("My Viewer")
        self.resize(1280, 960)
        self.Button_Save = QtWidgets.QPushButton(self.central_widget)
        self.Button_Save.setGeometry(10, 10, 70, 30)
        self.Button_Save.setStyleSheet("background-color: rgb(109, 109, 109);")
        self.Button_Save.setText("Save")
        self.Button_Save.clicked.connect(self.process_Save_Figure)

    def process_Save_Figure(self):
        msgBox = QtWidgets.QMessageBox()
        msgBox.setWindowFlag(QtCore.Qt.WindowStaysOnTopHint)
        msgBox.warning(msgBox.setStyleSheet("background-color:gray;"), 'Information',
                       "Save Data")

def main():
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = Ui_Viewer()
    MainWindow.createWindow()
    MainWindow.show()

    rc = app.exec_()
    sys.exit(rc)


if __name__ == "__main__":
    main()

2 个答案:

答案 0 :(得分:0)

当我注释掉self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)行时,问题消失了

(在PySide2上测试)

答案 1 :(得分:0)

尝试此代码:

  def process_Save_Figure(self):
        msgBox = QMessageBox()
        msgBox.warning(self, 'Information',"Save Data")

如果可行,您可以应用样式。