Безрамочное открытие QWidget с другого файла QMainWindow

Делаю приложение и дизайн в нём сделал безрамочным для красоты.
По отдельности 2 .py файла открываются нормально без рамки, а одно через другое по кнопке не открывается.

Код главного файла который будет открывать остальные:

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QDialog
from PyQt5.QtCore import Qt

from menu import Ui_MainWindow
from proxy import ProxySettings
from info import Ui_InfoTab

import sys

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

        self.setupUi(self)

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

        self._old_pos = None

        self.buttons()

        self.check.setCheckable(True)

    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)
    

    def buttons(self):
        self.browse_btn.clicked.connect(self.browse_base)
        self.close_btn.clicked.connect(self.close)
        #self.gate_save.clicked.connect(self.save_gate)
        self.check.clicked.connect(self.start_check)
        self.settings_btn.clicked.connect(self.open_settings)

    def start_check(self):
        if self.check.isChecked():
            self.status_code.setText("WORK")
            #self.status_code.adjustSize()
            self.status_code.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
                                    "color: rgb(85, 255, 0);")
            self.status_code.update()
            self.check_progress.setProperty("value", 100)
            self.check.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
                                          "border-radius: 10px;\n"
                                          "background-color: rgb(255, 42, 0);\n"
                                          "color: rgb(255, 255, 255);\n")
        else:
            self.status_code.setText("STOPPED")
            #self.status_code.adjustSize()
            self.status_code.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
                                    "color: rgb(255, 0, 0);")
            self.check.update()
            self.check_progress.setProperty("value", 0)
            self.check.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
                                          "border-radius: 10px;\n"
                                          "background-color: rgb(0, 170, 255);\n"
                                          "color: rgb(255, 255, 255);")

    def browse_base(self):
        option = QFileDialog.Options()
        file = QFileDialog.getOpenFileName(self, "Commercial Base", "", "TXT Files (*.txt)", options=option)
        self.cc_path.setText(file[0])

    def open_settings(self):
        mw = ProxySettings()
        mw.show()
        #global ProxyTab
        #ProxyTab = QtWidgets.QDialog()
        #ui = ProxySettings()
        #ui.setupUi(ProxyTab)
        #ProxyTab.show()
        #w.hide()

if __name__ == '__main__':
    app = QApplication([])
    w = Checker()
    #w.resize(400, 400)
    w.show()
    app.exec_()

Код файла menu (то что открывается первым):

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


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(301, 371)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(10, 10, 281, 351))
        self.frame.setStyleSheet("background-color: rgb(39, 39, 39); border-radius: 10px;")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.close_btn = QtWidgets.QPushButton(self.frame)
        self.close_btn.setGeometry(QtCore.QRect(250, 10, 22, 22))
        self.close_btn.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(255, 0, 0);\n"
"selection-background-color: rgb(212, 0, 0);")
        self.close_btn.setText("")
        self.close_btn.setObjectName("close_btn")
        self.check = QtWidgets.QPushButton(self.frame)
        self.check.setGeometry(QtCore.QRect(100, 290, 81, 35))
        font = QtGui.QFont()
        font.setFamily("Arial Black")
        font.setPointSize(8)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(10)
        self.check.setFont(font)
        self.check.setToolTipDuration(1)
        self.check.setAutoFillBackground(False)
        self.check.setStyleSheet("border-radius: 15px;\n"
"background-color: rgb(0, 170, 255);\n"
"font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.check.setObjectName("check")
        self.cc_path = QtWidgets.QLineEdit(self.frame)
        self.cc_path.setGeometry(QtCore.QRect(30, 140, 131, 23))
        self.cc_path.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.cc_path.setObjectName("cc_path")
        self.browse_btn = QtWidgets.QPushButton(self.frame)
        self.browse_btn.setGeometry(QtCore.QRect(170, 140, 71, 23))
        self.browse_btn.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.browse_btn.setObjectName("browse_btn")
#        self.hide_btn = QtWidgets.QPushButton(self.frame)
#        self.hide_btn.setGeometry(QtCore.QRect(220, 10, 22, 22))
#        self.hide_btn.setStyleSheet("border-radius: 10px;\n"
#"background-color: rgb(0, 170, 255);\n"
#"selection-background-color: rgb(0, 145, 215);")
#        self.hide_btn.setText("")
#        self.hide_btn.setObjectName("hide_btn")
        self.settings_btn = QtWidgets.QPushButton(self.frame)
        self.settings_btn.setGeometry(QtCore.QRect(10, 10, 22, 22))
        self.settings_btn.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.settings_btn.setText("")
        self.settings_btn.setIcon(QIcon('UI/settings.png'))
        self.settings_btn.setObjectName("settings_btn")
        self.status_code = QtWidgets.QLabel(self.frame)
        self.status_code.setGeometry(QtCore.QRect(150, 50, 81, 16))
        self.status_code.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
                                    "color: rgb(255, 0, 0);")
        self.status_code.setObjectName("status_code")
        self.status_label = QtWidgets.QLabel(self.frame)
        self.status_label.setGeometry(QtCore.QRect(80, 50, 61, 16))
        self.status_label.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);")
        self.status_label.setObjectName("status_label")
        self.check_progress = QtWidgets.QProgressBar(self.frame)
        self.check_progress.setGeometry(QtCore.QRect(30, 90, 221, 23))
        self.check_progress.setStyleSheet("QProgressBar{\n"
"    border-radius: 10px;\n"
"    background-color: rgb(236, 236, 236);\n"
"    color: rgb(0, 170, 255);\n"
"}\n"
"QProgressBar::chunk{\n"
"    border-radius: 10px;\n"
"    background-color: rgb(0, 170, 255);\n"
"}")
        self.check_progress.setProperty("value", 24)
        self.check_progress.setObjectName("progressBar")
        self.gate_save = QtWidgets.QPushButton(self.frame)
        self.gate_save.setGeometry(QtCore.QRect(170, 190, 71, 23))
        self.gate_save.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.gate_save.setObjectName("gate_save")
        self.gate_list = QtWidgets.QComboBox(self.frame)
        self.gate_list.setGeometry(QtCore.QRect(30, 190, 131, 22))
        self.gate_list.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.gate_list.setObjectName("gate_list")
        self.browse_info = QtWidgets.QPushButton(self.frame)
        self.browse_info.setGeometry(QtCore.QRect(250, 140, 16, 23))
        self.browse_info.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 20px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.browse_info.setObjectName("browse_info")
        self.save_info = QtWidgets.QPushButton(self.frame)
        self.save_info.setGeometry(QtCore.QRect(250, 190, 16, 23))
        self.save_info.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 20px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.save_info.setObjectName("save_info")
        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.check.setText(_translate("MainWindow", "Start"))
        self.cc_path.setPlaceholderText(_translate("MainWindow", "         Comm Base Path"))
        self.browse_btn.setText(_translate("MainWindow", "Browse"))
        self.status_code.setText(_translate("MainWindow", "STOPPED"))
        self.status_label.setText(_translate("MainWindow", "STATUS:"))
        self.gate_save.setText(_translate("MainWindow", "Save"))
        self.browse_info.setText(_translate("MainWindow", "i"))
        self.save_info.setText(_translate("MainWindow", "i"))

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

    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)

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 PyQt5.Qt import *
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon


class Ui_ProxyTab(object):
    def setupUi(self, ProxyTab):
        ProxyTab.setObjectName("ProxyTab")
        ProxyTab.resize(441, 369)
        
        self.frame = QtWidgets.QFrame(ProxyTab)
        self.frame.setGeometry(QtCore.QRect(10, 10, 421, 351))
        self.frame.setStyleSheet("background-color: rgb(39, 39, 39); border-radius: 10px;")
        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(390, 10, 22, 22))
        self.close.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(255, 0, 0);")
        self.close.setText("")
        self.close.setObjectName("close")
        
        self.proxytab = QtWidgets.QWidget(self.frame)
        self.proxytab.setGeometry(QtCore.QRect(110, 40, 301, 251))
        self.proxytab.setObjectName("proxytab")
        self.use_proxy = QtWidgets.QCheckBox(self.proxytab)
        self.use_proxy.setGeometry(QtCore.QRect(10, 10, 101, 17))
        self.use_proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);")
        self.use_proxy.setObjectName("use_proxy")
        
#        self.use_proxy.stateChanged.connect(self.proxy_checkbox)
        
        self.proxy_line = QtWidgets.QLineEdit(self.proxytab)
        self.proxy_line.setGeometry(QtCore.QRect(10, 170, 131, 22))
        self.proxy_line.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.proxy_line.hide()
        self.proxy_line.setObjectName("proxy_line")
        
        self.add_proxy = QtWidgets.QPushButton(self.proxytab)
        self.add_proxy.setGeometry(QtCore.QRect(150, 170, 61, 22))
        self.add_proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.add_proxy.hide()
        self.add_proxy.setObjectName("add_proxy")
        
        self.remove_proxy = QtWidgets.QPushButton(self.proxytab)
        self.remove_proxy.setGeometry(QtCore.QRect(220, 170, 61, 22))
        self.remove_proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.remove_proxy.hide()
        self.remove_proxy.setObjectName("remove_proxy")
        
        self.proxy_list = QtWidgets.QListWidget(self.proxytab)
        self.proxy_list.setGeometry(QtCore.QRect(10, 40, 271, 121))
        self.proxy_list.hide()
        self.proxy_list.setStyleSheet("background-color: rgb(236, 236, 236);")
        self.proxy_list.setObjectName("proxy_list")
        
        self.save = QtWidgets.QPushButton(self.frame)
        self.save.setGeometry(QtCore.QRect(210, 300, 101, 35))
        font = QtGui.QFont()
        font.setFamily("Arial Black")
        font.setPointSize(8)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(10)
        self.save.setFont(font)
        self.save.setToolTipDuration(1)
        self.save.setAutoFillBackground(False)
        self.save.setStyleSheet("border-radius: 15px;\n"
"background-color: rgb(0, 170, 255);\n"
"font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.save.setObjectName("check")
        
        self.proxywindow = QtWidgets.QPushButton(self.frame)
        self.proxywindow.setGeometry(QtCore.QRect(10, 40, 91, 23))
        self.proxywindow.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 5px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.proxywindow.setObjectName("proxywindow")
        self.infowindow = QtWidgets.QPushButton(self.frame)
        self.infowindow.setGeometry(QtCore.QRect(10, 310, 91, 23))
        self.infowindow.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 5px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.infowindow.setObjectName("infowindow")

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

    def retranslateUi(self, ProxyTab):
        _translate = QtCore.QCoreApplication.translate
        ProxyTab.setWindowTitle(_translate("Dialog", "Dialog"))
        self.use_proxy.setText(_translate("Dialog", "Use Proxy"))
        self.proxy_line.setPlaceholderText(_translate("Dialog", "  ip:port:login:password"))
        self.add_proxy.setText(_translate("Dialog", "Add"))
        self.remove_proxy.setText(_translate("Dialog", "Remove"))
        self.save.setText(_translate("Dialog", "Save"))
        self.proxywindow.setText(_translate("Dialog", "Proxy"))
        self.infowindow.setText(_translate("Dialog", "Info"))


# ------------> vvvvvvv<>vvvvvvvvvvv <---------------------------------
class ProxySettings(QWidget, Ui_ProxyTab):
    def __init__(self):
        super().__init__()
        
        self.setupUi(self)  

        self.setWindowFlags(Qt.FramelessWindowHint)             # вот эти 2 аттрибута
        self.setAttribute(Qt.WA_TranslucentBackground)          # работают
        
        self.use_proxy.stateChanged.connect(self.proxy_checkbox)

        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)
        
    def proxy_checkbox(self):
       if self.use_proxy.isChecked():
           self.proxy_line.show()
           self.add_proxy.show()
           self.remove_proxy.show()
           self.proxy_list.show()
       else:
           self.proxy_line.hide()
           self.add_proxy.hide()
           self.remove_proxy.hide()
           self.proxy_list.hide()
           
           
#if __name__ == '__main__':
#   import sys
#   app = QApplication(sys.argv)
#   mw = ProxySettings()
#   mw.show()
#   sys.exit(app.exec_())

Дизайн делался через QtDesigner.


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

Автор решения: S. Nick

Я отметил для вас изменения, которые внес.
Основное то, что объект mw должен быть атрибутом класса:

# ----> vvvv <-------------------------------------------------------------    
        self.mw = ProxySettings()                                # !!! self

q1469440_main.py:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QDialog
from PyQt5.QtCore import Qt

from q1469440_menu import Ui_MainWindow
from q1469440_proxy import ProxySettings

# ??? from q1469440_info import Ui_InfoTab                        # ???


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

        self.setupUi(self)

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

        self._old_pos = None
        self.buttons()
        self.check.setCheckable(True)
# +++        
        self.mw = 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)
    

    def buttons(self):
        self.browse_btn.clicked.connect(self.browse_base)
        self.close_btn.clicked.connect(self.close)
        #self.gate_save.clicked.connect(self.save_gate)
        self.check.clicked.connect(self.start_check)
        self.settings_btn.clicked.connect(self.open_settings)

    def start_check(self):
        if self.check.isChecked():
            self.status_code.setText("WORK")
            #self.status_code.adjustSize()
            self.status_code.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
                                    "color: rgb(85, 255, 0);")
            self.status_code.update()
            self.check_progress.setProperty("value", 100)
            self.check.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
                                          "border-radius: 10px;\n"
                                          "background-color: rgb(255, 42, 0);\n"
                                          "color: rgb(255, 255, 255);\n")
        else:
            self.status_code.setText("STOPPED")
            #self.status_code.adjustSize()
            self.status_code.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
                                    "color: rgb(255, 0, 0);")
            self.check.update()
            self.check_progress.setProperty("value", 0)
            self.check.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
                                          "border-radius: 10px;\n"
                                          "background-color: rgb(0, 170, 255);\n"
                                          "color: rgb(255, 255, 255);")

    def browse_base(self):
        option = QFileDialog.Options()
        file = QFileDialog.getOpenFileName(self, 
            "Commercial Base", "", "TXT Files (*.txt)", options=option)
        self.cc_path.setText(file[0])

    def open_settings(self):

# ----> vvvv <-------------------------------------------------------------    
        self.mw = ProxySettings()                                      # !!! self
        self.mw.show()
        
    def closeEvent(self, event):                                       # +++
        if self.mw:                                                    # +++
            self.mw.close()                                            # +++


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Checker()
    w.show()
    sys.exit(app.exec_())

q1469440_menu.py

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


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(301, 371)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(10, 10, 281, 351))
        self.frame.setStyleSheet("background-color: rgb(39, 39, 39); border-radius: 10px;")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        
        self.close_btn = QtWidgets.QPushButton(self.frame)
        self.close_btn.setGeometry(QtCore.QRect(250, 10, 22, 22))
        self.close_btn.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(255, 0, 0);\n"
"selection-background-color: rgb(212, 0, 0);")
        self.close_btn.setText("")
        self.close_btn.setObjectName("close_btn")
        
        self.check = QtWidgets.QPushButton(self.frame)
        self.check.setGeometry(QtCore.QRect(100, 290, 81, 35))
        font = QtGui.QFont()
        font.setFamily("Arial Black")
        font.setPointSize(8)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(10)
        self.check.setFont(font)
        self.check.setToolTipDuration(1)
        self.check.setAutoFillBackground(False)
        self.check.setStyleSheet("border-radius: 15px;\n"
"background-color: rgb(0, 170, 255);\n"
"font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.check.setObjectName("check")
        self.cc_path = QtWidgets.QLineEdit(self.frame)
        self.cc_path.setGeometry(QtCore.QRect(30, 140, 131, 23))
        self.cc_path.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.cc_path.setObjectName("cc_path")
        self.browse_btn = QtWidgets.QPushButton(self.frame)
        self.browse_btn.setGeometry(QtCore.QRect(170, 140, 71, 23))
        self.browse_btn.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.browse_btn.setObjectName("browse_btn")
        self.settings_btn = QtWidgets.QPushButton(self.frame)
        self.settings_btn.setGeometry(QtCore.QRect(10, 10, 22, 22))
        self.settings_btn.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.settings_btn.setText("")
        self.settings_btn.setIcon(QIcon('UI/settings.png'))
        self.settings_btn.setObjectName("settings_btn")
        self.status_code = QtWidgets.QLabel(self.frame)
        self.status_code.setGeometry(QtCore.QRect(150, 50, 81, 16))
        self.status_code.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
                                    "color: rgb(255, 0, 0);")
        self.status_code.setObjectName("status_code")
        self.status_label = QtWidgets.QLabel(self.frame)
        self.status_label.setGeometry(QtCore.QRect(80, 50, 61, 16))
        self.status_label.setStyleSheet("font: 87 10pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);")
        self.status_label.setObjectName("status_label")
        self.check_progress = QtWidgets.QProgressBar(self.frame)
        self.check_progress.setGeometry(QtCore.QRect(30, 90, 221, 23))
        self.check_progress.setStyleSheet("QProgressBar{\n"
"    border-radius: 10px;\n"
"    background-color: rgb(236, 236, 236);\n"
"    color: rgb(0, 170, 255);\n"
"}\n"
"QProgressBar::chunk{\n"
"    border-radius: 10px;\n"
"    background-color: rgb(0, 170, 255);\n"
"}")
        self.check_progress.setProperty("value", 24)
        self.check_progress.setObjectName("progressBar")
        self.gate_save = QtWidgets.QPushButton(self.frame)
        self.gate_save.setGeometry(QtCore.QRect(170, 190, 71, 23))
        self.gate_save.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.gate_save.setObjectName("gate_save")
        self.gate_list = QtWidgets.QComboBox(self.frame)
        self.gate_list.setGeometry(QtCore.QRect(30, 190, 131, 22))
        self.gate_list.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.gate_list.setObjectName("gate_list")
        self.browse_info = QtWidgets.QPushButton(self.frame)
        self.browse_info.setGeometry(QtCore.QRect(250, 140, 16, 23))
        self.browse_info.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 20px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.browse_info.setObjectName("browse_info")
        self.save_info = QtWidgets.QPushButton(self.frame)
        self.save_info.setGeometry(QtCore.QRect(250, 190, 16, 23))
        self.save_info.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 20px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.save_info.setObjectName("save_info")
        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.check.setText(_translate("MainWindow", "Start"))
        self.cc_path.setPlaceholderText(_translate("MainWindow", "         Comm Base Path"))
        self.browse_btn.setText(_translate("MainWindow", "Browse"))
        self.status_code.setText(_translate("MainWindow", "STOPPED"))
        self.status_label.setText(_translate("MainWindow", "STATUS:"))
        self.gate_save.setText(_translate("MainWindow", "Save"))
        self.browse_info.setText(_translate("MainWindow", "i"))
        self.save_info.setText(_translate("MainWindow", "i"))

q1469440_proxy.py

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *


class Ui_ProxyTab(object):
    def setupUi(self, ProxyTab):
        ProxyTab.setObjectName("ProxyTab")
        ProxyTab.resize(441, 369)
        
        self.frame = QtWidgets.QFrame(ProxyTab)
        self.frame.setGeometry(QtCore.QRect(10, 10, 421, 351))
        self.frame.setStyleSheet("background-color: rgb(39, 39, 39); border-radius: 10px;")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        
        self.close_button = QtWidgets.QPushButton(self.frame)
        self.close_button.setGeometry(QtCore.QRect(390, 10, 22, 22))
        self.close_button.setStyleSheet("border-radius: 10px;\n"
"background-color: rgb(255, 0, 0);")
        self.close_button.setText("")
        self.close_button.setObjectName("close_button")
        
        self.proxytab = QtWidgets.QWidget(self.frame)
        self.proxytab.setGeometry(QtCore.QRect(110, 40, 301, 251))
        self.proxytab.setObjectName("proxytab")
        self.use_proxy = QtWidgets.QCheckBox(self.proxytab)
        self.use_proxy.setGeometry(QtCore.QRect(10, 10, 101, 17))
        self.use_proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);")
        self.use_proxy.setObjectName("use_proxy")
        
        self.proxy_line = QtWidgets.QLineEdit(self.proxytab)
        self.proxy_line.setGeometry(QtCore.QRect(10, 170, 131, 22))
        self.proxy_line.setStyleSheet("border-style: outset;\n"
"background-color: rgb(236, 236, 236);\n"
"border-width: 1px;\n"
"border-radius: 10px;")
        self.proxy_line.hide()
        self.proxy_line.setObjectName("proxy_line")
        
        self.add_proxy = QtWidgets.QPushButton(self.proxytab)
        self.add_proxy.setGeometry(QtCore.QRect(150, 170, 61, 22))
        self.add_proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.add_proxy.hide()
        self.add_proxy.setObjectName("add_proxy")
        
        self.remove_proxy = QtWidgets.QPushButton(self.proxytab)
        self.remove_proxy.setGeometry(QtCore.QRect(220, 170, 61, 22))
        self.remove_proxy.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 10px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.remove_proxy.hide()
        self.remove_proxy.setObjectName("remove_proxy")
        
        self.proxy_list = QtWidgets.QListWidget(self.proxytab)
        self.proxy_list.setGeometry(QtCore.QRect(10, 40, 271, 121))
        self.proxy_list.hide()
        self.proxy_list.setStyleSheet("background-color: rgb(236, 236, 236);")
        self.proxy_list.setObjectName("proxy_list")
        
        self.save = QtWidgets.QPushButton(self.frame)
        self.save.setGeometry(QtCore.QRect(210, 300, 101, 35))
        font = QtGui.QFont()
        font.setFamily("Arial Black")
        font.setPointSize(8)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(10)
        self.save.setFont(font)
        self.save.setToolTipDuration(1)
        self.save.setAutoFillBackground(False)
        self.save.setStyleSheet("border-radius: 15px;\n"
"background-color: rgb(0, 170, 255);\n"
"font: 87 8pt \"Arial Black\";\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.save.setObjectName("check")
        
        self.proxywindow = QtWidgets.QPushButton(self.frame)
        self.proxywindow.setGeometry(QtCore.QRect(10, 40, 91, 23))
        self.proxywindow.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 5px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.proxywindow.setObjectName("proxywindow")
        self.infowindow = QtWidgets.QPushButton(self.frame)
        self.infowindow.setGeometry(QtCore.QRect(10, 310, 91, 23))
        self.infowindow.setStyleSheet("font: 87 8pt \"Arial Black\";\n"
"border-radius: 5px;\n"
"background-color: rgb(0, 170, 255);\n"
"color: rgb(255, 255, 255);\n"
"selection-background-color: rgb(0, 145, 215);")
        self.infowindow.setObjectName("infowindow")

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

    def retranslateUi(self, ProxyTab):
        _translate = QtCore.QCoreApplication.translate
        ProxyTab.setWindowTitle(_translate("Dialog", "Dialog"))
        self.use_proxy.setText(_translate("Dialog", "Use Proxy"))
        self.proxy_line.setPlaceholderText(_translate("Dialog", "  ip:port:login:password"))
        self.add_proxy.setText(_translate("Dialog", "Add"))
        self.remove_proxy.setText(_translate("Dialog", "Remove"))
        self.save.setText(_translate("Dialog", "Save"))
        self.proxywindow.setText(_translate("Dialog", "Proxy"))
        self.infowindow.setText(_translate("Dialog", "Info"))


class ProxySettings(QWidget, Ui_ProxyTab):
    def __init__(self):
        super().__init__()
        
        self.setupUi(self)  

        self.setWindowFlags(Qt.FramelessWindowHint)          
        self.setAttribute(Qt.WA_TranslucentBackground)          
        
        self.use_proxy.stateChanged.connect(self.proxy_checkbox)
        self.close_button.clicked.connect(self.close)
        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)
        
    def proxy_checkbox(self):
       if self.use_proxy.isChecked():
           self.proxy_line.show()
           self.add_proxy.show()
           self.remove_proxy.show()
           self.proxy_list.show()
       else:
           self.proxy_line.hide()
           self.add_proxy.hide()
           self.remove_proxy.hide()
           self.proxy_list.hide()

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

→ Ссылка