Убрать рамки приложения #2

Всем привет Хочу убрать рамки с приложения как в прошлой теме которую я создал, но в новом дизайне так не получилось

безрамочный дизайн

Код менюшки:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(311, 359)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(10, 10, 291, 341))
        self.frame.setStyleSheet("QFrame {\n"
"    border-radius: 10px;\n"
"    background-color: rgb(39, 39, 39);\n"
"}")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.close = QtWidgets.QPushButton(self.frame)
        self.close.setGeometry(QtCore.QRect(258, 10, 22, 22))
        self.close.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(255, 42, 0)")
        self.close.setText("")
        self.close.setObjectName("close")
        self.hide = QtWidgets.QPushButton(self.frame)
        self.hide.setGeometry(QtCore.QRect(230, 10, 22, 22))
        self.hide.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(1, 196, 255)")
        self.hide.setText("")
        self.hide.setObjectName("hide")
        self.potok = QtWidgets.QSpinBox(self.frame)
        self.potok.setGeometry(QtCore.QRect(150, 250, 42, 22))
        self.potok.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 5px;")
        self.potok.setMinimum(1)
        self.potok.setMaximum(100)
        self.potok.setObjectName("potok")
        self.label = QtWidgets.QLabel(self.frame)
        self.label.setGeometry(QtCore.QRect(80, 30, 65, 13))
        self.label.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);")
        self.label.setObjectName("label")
        self.base = QtWidgets.QPushButton(self.frame)
        self.base.setGeometry(QtCore.QRect(158, 90, 93, 21))
        self.base.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);")
        self.base.setObjectName("base")
        self.save_addr = QtWidgets.QLineEdit(self.frame)
        self.save_addr.setGeometry(QtCore.QRect(39, 133, 111, 21))
        self.save_addr.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.save_addr.setObjectName("save_addr")
        self.proxy_use = QtWidgets.QCheckBox(self.frame)
        self.proxy_use.setGeometry(QtCore.QRect(69, 166, 160, 17))
        self.proxy_use.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);")
        self.proxy_use.setObjectName("proxy_use")
        self.mainbutton = QtWidgets.QPushButton(self.frame)
        self.mainbutton.setGeometry(QtCore.QRect(93, 290, 103, 31))
        self.mainbutton.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);")
        self.mainbutton.setObjectName("mainbutton")
        self.progress = QtWidgets.QProgressBar(self.frame)
        self.progress.setGeometry(QtCore.QRect(75, 56, 141, 16))
        self.progress.setStyleSheet("QProgressBar{\n"
"    border-radius: 10px;\n"
"    background-color: rgb(236, 236, 236);\n"
"    color: rgb(0, 170, 255);\n"
"}\n"
"\n"
"QProgressBar::chunk{\n"
"    border-radius: 10px;\n"
"    background-color: rgb(0, 170, 255);\n"
"}")
        self.progress.setProperty("value", 24)
        self.progress.setObjectName("progress")
        self.proxy = QtWidgets.QPushButton(self.frame)
        self.proxy.setGeometry(QtCore.QRect(158, 194, 93, 23))
        self.proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);")
        self.proxy.setObjectName("proxy")
        self.proxy_addr = QtWidgets.QLineEdit(self.frame)
        self.proxy_addr.setGeometry(QtCore.QRect(39, 195, 111, 21))
        self.proxy_addr.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.proxy_addr.setObjectName("proxy_addr")
        self.label_2 = QtWidgets.QLabel(self.frame)
        self.label_2.setGeometry(QtCore.QRect(83, 250, 65, 21))
        self.label_2.setStyleSheet("color: rgb(255, 255, 255);\n"
"font: 87 10pt \"Arial Black\";")
        self.label_2.setObjectName("label_2")
        self.base_addr = QtWidgets.QLineEdit(self.frame)
        self.base_addr.setGeometry(QtCore.QRect(39, 90, 111, 21))
        self.base_addr.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.base_addr.setObjectName("base_addr")
        self.work = QtWidgets.QLabel(self.frame)
        self.work.setGeometry(QtCore.QRect(140, 30, 70, 13))
        self.work.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
"color: rgb(85, 255, 0);")
        self.work.setObjectName("work")
        self.save = QtWidgets.QPushButton(self.frame)
        self.save.setGeometry(QtCore.QRect(158, 133, 93, 21))
        self.save.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);")
        self.save.setObjectName("save")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "Статус:"))
        self.base.setText(_translate("MainWindow", "Выбрать"))
        self.proxy_use.setText(_translate("MainWindow", "Использовать прокси"))
        self.mainbutton.setText(_translate("MainWindow", "Начать"))
        self.proxy.setText(_translate("MainWindow", "Выбрать"))
        self.label_2.setText(_translate("MainWindow", "Потоков:"))
        self.work.setText(_translate("MainWindow", "Работает"))
        self.save.setText(_translate("MainWindow", "Сохранить"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Код удаления рамок:

from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtCore import Qt

from MainWindow_ui import Ui_MainWindow


class Widget(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()

        self.setupUi(self)

        self.setWindowFlags(Qt.FramelessWindowHint)

        self._old_pos = None

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self._old_pos = event.pos()

    def mouseReleaseEvent(self, event):
        if event.button() == Qt.LeftButton:
            self._old_pos = None

    def mouseMoveEvent(self, event):
        if not self._old_pos:
            return

        delta = event.pos() - self._old_pos
        self.move(self.pos() + delta)

Ответы (1 шт):

Автор решения: gil9red

Продолжение ответа https://ru.stackoverflow.com/a/1298914/201445 :)

Добавьте self.setAttribute(Qt.WA_TranslucentBackground), это удалит задний фон окна:

...
class Widget(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()

        self.setupUi(self)

        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setAttribute(Qt.WA_TranslucentBackground)

        self._old_pos = None
...

введите сюда описание изображения

→ Ссылка