Как убрать рамку главного окна QMainWindow в PyQt6?
Не могу никак избавиться от рамки главного окна для моего календаря (QCalendarWidget
), который я создал в Qt Designer.
Читал что нужно прописать:
self.setWindowFlag(QtCore.Qt.WindowType.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
но ничего не получается.
Виджет так и передается с рамками окна.
Помогите)
Вот мой код. Как его нужно поправить?
from PyQt6 import QtCore, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(371, 323)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.frame = QtWidgets.QFrame(parent=self.centralwidget)
self.frame.setGeometry(QtCore.QRect(20, 10, 341, 271))
self.frame.setStyleSheet("QFrame {\n"
" border-radius: 10px;\n"
" background-color: rgb(68,56,72);\n"
"}")
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.calendarWidget = QtWidgets.QCalendarWidget(parent=self.frame)
self.calendarWidget.setEnabled(True)
self.calendarWidget.setGeometry(QtCore.QRect(20, 10, 301, 191))
self.calendarWidget.setToolTip("")
self.calendarWidget.setStatusTip("")
self.calendarWidget.setAutoFillBackground(False)
self.calendarWidget.setStyleSheet("QCalendarWidget{border-radius: 10px;}\n"
"\n"
"\n"
"QCalendarWidget QWidget \n"
"{\n"
" alternate-background-color: rgb(68,56,72);\n"
" color: #FFFFFF;\n"
" selection-background-color:qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:0, stop:0 rgba(81, 0, 135, 255), stop:0.427447 rgba(41, 61, 132, 235), stop:1 rgba(155, 79, 165, 255));\n"
" background-color: rgb(68,56,72);\n"
" gridline-color: rgb(179, 65, 244);\n"
" selection-color: #FFFFFF;\n"
" font: 57 8pt \"Inter Medium\";\n"
"}\n"
"\n"
"\n"
"\n"
"#qt_calendar_prevmonth,\n"
"#qt_calendar_nextmonth{\n"
"border: none;\n"
"qproperty-icon: none;\n"
"min-width: 13px;\n"
"max-width: 13px;\n"
"min-height: 13px;\n"
"max-height: 13px;\n"
"\n"
"border-radius: 10px;\n"
"background-color: transparent;\n"
"padding: 10px;\n"
"\n"
"}\n"
"\n"
"#qt_calendar_prevmonth{\n"
"margin-right: 5px;\n"
" image: url(:/images/Vector2.png);\n"
"}\n"
"\n"
"#qt_calendar_nextmonth{\n"
"margin-right: 5px;\n"
" image: url(:/images/Vector!!.png);\n"
"}\n"
"\n"
"QCalendarWidget QAbstractItemView:disabled \n"
"{ \n"
"color: rgb(64, 64, 64); \n"
"}\n"
"")
self.calendarWidget.setGridVisible(False)
self.calendarWidget.setNavigationBarVisible(True)
self.calendarWidget.setDateEditEnabled(True)
self.calendarWidget.setObjectName("calendarWidget")
self.pushButton = QtWidgets.QPushButton(parent=self.frame)
self.pushButton.setGeometry(QtCore.QRect(100, 220, 151, 31))
self.pushButton.setStyleSheet("background:#7C7174;\n"
"border-radius: 10px;\n"
"color: #FFFFFF;\n"
"font: 75 8pt \"MS Shell Dlg 2\";")
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 371, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=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 MainWindow1(Ui_MainWindow):
def __init__(self):
super().__init__()
self.setWindowFlag(QtCore.Qt.WindowType.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow1 = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow1)
MainWindow1.show()
sys.exit(app.exec())
Источник: Stack Overflow на русском