Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
Source Code:
import sys
# applicable to PyQt5 as well
from PyQt6.QtWidgets import QApplication, QTextEdit, QPushButton, QLineEdit, QLabel, QWidget, QHBoxLayout, QVBoxLayout
"""
Example Iterating Child Widgets
"""
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.window_width, self.window_height = 1000, 800
self.setMinimumSize(self.window_width, self.window_height)
self.textEdit = QTextEdit(self)
self.textEdit.resize(1200, 400)
self.label = QLabel('Label Widget', self)
self.label.move(70, 450)
self.layout = QVBoxLayout(self)
# self.setLayout(self.layout)
self.initUI()
def initUI(self):
self.button1 = QPushButton('Button 1', clicked=self.listchildWidgets)
self.button2 = QPushButton('Button 2', clicked=self.listChildWidget)
self.button3 = QPushButton('Button 3', clicked=self.listLayoutChildWidgets)
self.layout.addWidget(self.button1)
self.layout.addWidget(self.button2)
self.layout.addWidget(self.button3)
def listchildWidgets(self):
print(self.findChildren(QWidget))
print(self.findChildren(QPushButton))
def listChildWidget(self):
print(self.findChild(QWidget).toPlainText())
def listLayoutChildWidgets(self):
# print(self.layout.findChild(QWidget))
for i in range(self.layout.count()):
print(self.layout.itemAt(i).widget().text())
# print(self.layout.itemAt(i).widget().objectName())
if __name__ == '__main__':
# don't auto scale when drag app to a different monitor.
# QApplication.setAttribute(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
app = QApplication(sys.argv)
app.setStyleSheet('''
QWidget {
font-size: 30px;
}
''')
myApp = MyApp()
myApp.show()
try:
sys.exit(app.exec())
except SystemExit:
print('Closing Window...')
