QFrame не отображается когда я его помещаю в отдельный класс
Я писал программу PyQt5, но после запуска программы не вижу Frame и получаю пустое окно.
В чем дело? Подскажите, пожалуйста :-)
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication,QLabel,QFrame,QTextEdit
#import loadingscript
#Main Window
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
#setting of window
self.setGeometry(300,100,1000,700)
self.setFixedSize(1000,700)
self.setWindowTitle("ShumeGram")
#background
background = QLabel(self)
background.setGeometry(0,0,1000,700)
background.setStyleSheet("background-image: url(background.jpg)")
#All objects
self.l = LeftFrame()
#show all objects
self.show()
class LeftFrame(QFrame):
def __init__(self):
super().__init__()
#setting of frame
self.setGeometry(-30,0,250,730)
self.setStyleSheet("background-color: white; border-radius: 30px;")
if __name__ == '__main__':
app = QApplication(sys.argv)
m = MainWindow()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Виджет без родителя - это окно. Окно надо показать:
self.leftFrame.show()
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication,QLabel, \
QFrame, QTextEdit, QWidget
class LeftFrame(QFrame):
def __init__(self):
super().__init__()
self.setGeometry(-30, 0, 250, 730)
self.setStyleSheet("background-color: red; border-radius: 30px;")
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
#setting of window
self.setGeometry(300,100,1000,700)
self.setFixedSize(1000,700)
self.setWindowTitle("ShumeGram")
self.centralwidget = QWidget()
self.setCentralWidget(self.centralwidget)
#background
background = QLabel('Htllo Wjrld', self.centralwidget)
background.setGeometry(0, 0, 1000, 700)
background.setStyleSheet("background-image: url(lena.jpg)")
self.leftFrame = LeftFrame()
#show leftFrame
self.leftFrame.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
m = MainWindow()
m.show()
sys.exit(app.exec_())
