Как в PyQt5 убрать верхнюю рамку?
Хочу избавиться от верхней рамки с подписью MainWindow и кнопкой закрытия окна. То есть вместо этого:
Нужно получить такой результат:
Мой код состоит из двух файлов:
main.py:
from main_window import Ui_MainWindow
from PyQt5 import QtWidgets
import sys
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QDialog()
mw = Ui_MainWindow()
mw.setupUi(MainWindow)
MainWindow.show()
main_window.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(720, 345)
MainWindow.setStyleSheet("")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setStyleSheet("")
self.centralwidget.setObjectName("centralwidget")
И так далее.
Я понимаю, что можно убрать верхнюю рамку, ссылаясь на файл в формате .ui, но не понимаю, как сделать это в моем случае.
Помогите разобраться, пожалуйста!
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
enum Qt::WindowType
flags Qt::WindowFlagsЭтот тип перечисления используется для указания различных свойств оконной системы для виджета. Они довольно необычны, но необходимы в некоторых случаях. Некоторые из этих флагов зависят от того, поддерживает ли их основной оконный менеджер.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(720, 345)
MainWindow.setStyleSheet("")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.centralwidget.setStyleSheet("#centralwidget {background-color: #347474;}")
self.setCentralWidget(self.centralwidget)
self.layout = QtWidgets.QGridLayout(self.centralwidget)
self.layout.setObjectName("layout")
self.progressBar = QtWidgets.QProgressBar()
self.progressBar.setObjectName("progressBar")
self.progressBar.setRange(0, 0)
self.progressBar.setTextVisible(False)
self.progressBar.setStyleSheet("""
#progressBar {
min-height: 20px;
max-height: 20px;
border-radius: 4px;
min-width: 400px;
}
#progressBar::chunk {
border-radius: 4px;
background-color: #009688;
}
""")
self.label = QtWidgets.QLabel("ТЕКСТ")
self.label.setObjectName("label")
self.label.setStyleSheet("""
#label {
color: #F2FA5A;
font-size: 70px;
}
""")
self.pushButton = QtWidgets.QPushButton("Меню")
self.pushButton.setObjectName("pushButton")
self.pushButton.setFixedSize(100, 40)
self.pushButton.setStyleSheet("""
#pushButton {
background-color: #2196f3;
color: #F2FA5A;
font-size: 20px;
border-radius: 20px;
}
""")
self.layout.addWidget(self.progressBar, 1, 1, alignment=QtCore.Qt.AlignCenter)
self.layout.addWidget(self.label, 2, 1, alignment=QtCore.Qt.AlignCenter)
self.layout.addWidget(self.pushButton, 3, 1, alignment=QtCore.Qt.AlignCenter)
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | # !!! +++
QtCore.Qt.WindowStaysOnTopHint) # !!! +++
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
# ---------------------------> vvvvvvv <------------ ?????????
# ??? MainWindow = QtWidgets.QDialog()
# mw = Ui_MainWindow()
# mw.setupUi(MainWindow)
# MainWindow.show()
mw = MainWindow()
mw.show()
sys.exit(app.exec())


