Форум сайта python.su
Есть основное окно программы, в котором будут производиться различные действия по нажатию кнопки.
На время обработки запроса необходимо выводить всплывающее уведомление об обработке запроса с блокировкой основного окна.
У меня получается отображать только модальное окно с заголовком, без текста и оно доступно для перетаскивания. При отключении заголовка через setWindowFlags окно вообще не отображается.
Хотелось бы отображать что-то вроде элемента “ToolTip” по центру родительского окна, в котором есть только текст, нет заголовка и окно было бы недоступно для взаимодействия, перетаскивание и т.д.
Как это можно сделать?
from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QWidget, QApplication, QDesktopWidget, QGridLayout, QPushButton, QDialog, QLabel, ) import time class Gui(QWidget): def __init__(self): super().__init__() self.resize(320, 240) self.setWindowTitle('Test') self.grid = QGridLayout(self) self.button = QPushButton() self.grid.addWidget(self.button) self.button.setText('Button') self.button.clicked.connect(self.show_win) self.modal = QDialog(self) # self.modal.setWindowFlags(Qt.CustomizeWindowHint | Qt.WindowTitleHint) self.modal.resize(200, 200) self.modal.setModal(True) self.grid2 = QGridLayout(self.modal) self.label2 = QLabel() self.label2.setText('info') self.grid2.addWidget(self.label2) self.move_center() def show_win(self): print('tst') self.modal.show() time.sleep(3) self.modal.close() def move_center(self): fg = self.frameGeometry() ac = QDesktopWidget().availableGeometry().center() fg.moveCenter(ac) self.move(fg.topLeft()) def show_gui(): app = QApplication([]) gui = Gui() gui.show() app.exec_()
Офлайн