Как я могу разместить радиобоксы поверх макета? - PullRequest
0 голосов
/ 03 августа 2020

Я создал следующее окно. Однако при запуске кода RadioBox остаются позади макета, содержащего фрейм и строку. Может кто-нибудь подскажите, как этого избежать?

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys

class Window(QWidget):
    
    def __init__(self): 
        super().__init__()
  
        self.setWindowTitle('Window')
        self.setFixedSize(550,440)
        self.LaySelf = QGridLayout()

        self.initWidgets()
        self.initUI()

        self.show()

    def initWidgets(self):

        self.Panel = QFrame()
        self.Panel.setFrameStyle(QFrame.StyledPanel)
        self.Panel.setLineWidth(2)
        self.Panel.setStyleSheet('background-color:#f4f2f1')

        self.Btt = QRadioButton('Radio',self)

        self.Label = QLabel(' '*40+'Hi')

    def initUI(self):

        self.LaySelf.addWidget(self.Panel,0,0,-1,6)
        self.LaySelf.addWidget(self.Label,0,0,-1,6)

        self.setLayout(self.LaySelf)

        self.Btt.move(200,200)

App = QApplication(sys.argv) 
window = Window()
sys.exit(App.exec())

1 Ответ

0 голосов
/ 05 августа 2020

Чтобы сделать радиокнопку поверх QFrame , вам нужно добавить его во фрейм. В настоящее время радиокнопки остаются за рамкой, закрывающей макет.

Замените QRadioButton('Radio',self) на QRadioButton('Radio',self.Panel)

Также вот ссылка на другой поток, который демонстрирует Использование фрейма с несколькими QWidgets

...