Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 2, 2021 17:12:46

Pacifist
Зарегистрирован: 2020-01-10
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Стиль QMessageBox.information

Всем привет.
Есть два окна. Во втором ввожу число и передаю его в первое.
Как сделать проверку (int or float) во втором окне класс Proba_win_2(QtWidgets.QDialog) сообразить не смог. Делаю ее в основном окне, но всплывающее окно QMessageBox.information принимает класс основного окна (салатовый фон).
Подскажите, пожалуйста, как сделать стиль всплывающего окна QMessageBox.information нейтральным (или задать самому). Спасибо!

 from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(661, 317)
        MainWindow.setStyleSheet("background-color: rgb(170, 170, 0);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(60, 70, 121, 31))
        self.pushButton.setStyleSheet("background-color: rgb(255, 85, 0);")
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(310, 80, 201, 31))
        self.label.setStyleSheet("background-color: rgb(0, 255, 255);")
        self.label.setText("")
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Выбрать"))
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(50, 30, 161, 31))
        self.lineEdit.setObjectName("lineEdit")
        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
class Proba_osn_win(QtWidgets.QMainWindow):
    def __init__(self):
        super(Proba_osn_win, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.win_2_otkr)
    def win_2_otkr(self):
        self.application = Proba_win_2()
        result = self.application.exec()
        if result == QtWidgets.QDialog.Accepted:
            if self.application.znach.isdigit():
                self.ui.label.setText(self.application.znach)
            elif self.application.znach.count('.') == 1 and self.application.znach.replace('.', '').isdigit():
                self.ui.label.setText(str(float(self.application.znach) * 2))
            else:
                QtWidgets.QMessageBox.information(self, "ВНИМАНИЕ!", 'Вы ввели недопустимое значение!')
class Proba_win_2(QtWidgets.QDialog):
    def __init__(self):
        super(Proba_win_2, self).__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.lineEdit.textChanged[str].connect(self.vyb)
        self.ui.buttonBox.clicked.connect(self.accept)
    def vyb(self, item):
        self.znach = item
app = QtWidgets.QApplication([])
application = Proba_osn_win()
application.show()
sys.exit(app.exec())

Офлайн

#2 Фев. 2, 2021 18:11:44

rami
Зарегистрирован: 2018-01-08
Сообщения: 278
Репутация: +  71  -
Профиль   Отправить e-mail  

Стиль QMessageBox.information

В классе Ui_MainWindow поправьте:

         MainWindow.setStyleSheet("QMainWindow{background-color: rgb(170, 170, 0);}")
QMessageBox.information станет обычным.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version