Какой модуль из библиотеки PyQt5 нужно передавать классу приложения?

Какой родительский класс нужно передавать классу при построении приложения с PyQt5? В моём случае есть класс SkeletonOfWindow, если ему передать модуль QWidget, то класс будет распознавать все модули и функции из QWidget.

Но в интернете множество разных примеров, в которых передают не только QWidget, но и другие модули!

Какой модуль более универсален для передачи его классу?

import sys
from PyQt5.QtWidgets import QApplication


class SkeletonOfWindow():
    def __init__(self):
        super().__init__()
        self.build_skeleton_with_basic_settings()

    def build_skeleton_with_basic_settings(self):
        pass


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = SkeletonOfWindow()
    sys.exit(app.exec_())

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

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

Все зависит от того какие задачи вы будите выполнять.

  1. Класс QWidget - это базовый класс всех объектов пользовательского интерфейса. введите сюда описание изображения

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QDialog
from PyQt5 import QtWidgets


class SkeletonOfWindow(QWidget):
    def __init__(self):
        super().__init__()
       
        self.build_skeleton_with_basic_settings()

    def build_skeleton_with_basic_settings(self):
        label = QtWidgets.QLabel("Hello World")
        
        layout = QtWidgets.QHBoxLayout(self)
        layout.addWidget(label)        


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = SkeletonOfWindow()
    ex.show()
    sys.exit(app.exec_())
  1. Класс QMainWindow предоставляет главное окно приложения.

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


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QDialog
from PyQt5 import QtWidgets


class SkeletonOfWindow(QMainWindow):
    def __init__(self):
        super().__init__()
       
        self.build_skeleton_with_basic_settings()

    def build_skeleton_with_basic_settings(self):
        self.centralWidget = QWidget()
        self.setCentralWidget(self.centralWidget)
        
        label = QtWidgets.QLabel("Hello World")
        
        layout = QtWidgets.QHBoxLayout(self.centralWidget)
        layout.addWidget(label)        


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = SkeletonOfWindow()
    ex.show()
    sys.exit(app.exec_())
  1. Класс QDialog - это базовый класс диалоговых окон.

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


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QDialog
from PyQt5 import QtWidgets


class SkeletonOfWindow(QDialog):
    def __init__(self):
        super().__init__()
       
        self.build_skeleton_with_basic_settings()

    def build_skeleton_with_basic_settings(self):
        label = QtWidgets.QLabel("Hello World")
        
        layout = QtWidgets.QHBoxLayout(self)
        layout.addWidget(label)        


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = SkeletonOfWindow()
    ex.show()
    sys.exit(app.exec_())
→ Ссылка