(Python 3.7 in Anaconda env, IDE = pycharm community)
I made two sub-pages(red, green) but there's only one sub-page(green) like following image.
And here's my code.
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class TestUI(QWidget):
class Page(QWidget):
def __init__(self, main):
self.main = main
super().__init__(parent=self.main)
self._build_page(self.main)
def _build_page(self, main):
self.setObjectName("Page")
self.setGeometry(0, 0, 200, 200)
self.setStyleSheet("background-color: rgba(255, 0, 0, 255);")
def __init__(self):
super().__init__()
self._build_ui()
def _build_ui(self):
self._build_window()
self._build_login_page()
def _build_window(self):
# Window
self.window_width = 360
self.window_height = 640
self.setGeometry(0, 0, self.window_width, self.window_height)
self.setWindowFlags(Qt.FramelessWindowHint)
def _build_login_page(self):
self.page = self.Page(self)
self.page2 = QWidget(parent=self)
self.setObjectName("Page2")
self.page2.setGeometry(100, 100, 200, 200)
self.page2.setStyleSheet("background-color: rgba(0, 255, 0, 255);")
Their parent(), stylesheet form, isHidden(), isVisible() are all same.
/>>> self.ui.page, self.ui.page2
(<test_UI.TestUI.Page object at 0x000001CDCD42CD38>, <PyQt5.QtWidgets.QWidget object at 0x000001CDCD42CF78>)
/>>> self.ui.page.parent(), self.ui.page2.parent()
(<test_UI.TestUI object at 0x000001CDCD46F5E8>, <test_UI.TestUI object at 0x000001CDCD46F5E8>)
/>>> self.ui.page.styleSheet(), self.ui.page2.styleSheet()
('background-color: rgba(255, 0, 0, 255);', 'background-color: rgba(0, 255, 0, 255);')
/>>> self.ui.page.isHidden(), self.ui.page2.isHidden()
(False, False)
/>>> self.ui.page.isVisible(), self.ui.page2.isVisible()
(False, False)
I think there's only one difference; ui.page is an internal class inherits QWidget, ui.page2 is a QWidget object made directly.
And I think it does exist(just invisible; like rgba(*, *, *, 0)) because when I added
self.ui.invisible_page.raise_()
in the other source file, so invisible_page comes to top of all widgets, and I couldn't press another pushbutton that behind invisible_page.
Is there any mistake?