1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/python
- #
- # Copyright (c) Contributors to the Open 3D Engine Project.
- # For complete copyright and license terms please see the LICENSE at the root of this distribution.
- #
- # SPDX-License-Identifier: Apache-2.0 OR MIT
- #
- #
- # -------------------------------------------------------------------------
- import os
- import sys
- from PySide2.QtCore import QFile, QSize
- from PySide2.QtUiTools import QUiLoader
- from PySide2.QtWidgets import QApplication, QSizePolicy
- from PySide2.QtWidgets import QMainWindow, QWidget, QVBoxLayout, QHBoxLayout
- _MODULE_DIR_PATH = os.path.dirname(os.path.abspath(__file__))
- _UI_FILEPATH = "{0}\\\\sbs_builder_widget.ui".format(_MODULE_DIR_PATH)
- _PROGRAM_NAME_VERSION = 'Substance Builder'
- class UiLoader(QUiLoader):
- def __init__(self, baseInstance):
- super(UiLoader, self).__init__(baseInstance)
- self._baseInstance = baseInstance
- def createWidget(self, classname, parent=None, name=""):
- widget = super(UiLoader, self).createWidget(
- classname, parent, name)
- if parent is None:
- return self._baseInstance
- else:
- setattr(self._baseInstance, name, widget)
- return widget
- class MainWindow(QMainWindow):
- def __init__(self, ui_file=_UI_FILEPATH, parent=None):
- super().__init__(parent)
- # Setup central widget and layout
- self.central_widget = QWidget()
- self.central_layout = QVBoxLayout(self.central_widget)
- self.central_layout.setContentsMargins(8, 8, 8, 8)
- self.setCentralWidget(self.central_widget)
- self.setup_layout(ui_file)
- self.setMinimumSize(QSize(675, 825))
- def setup_layout(self, ui_file):
- self.layout = QHBoxLayout()
- self.widget = MyWidget(ui_file, self)
- self.widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
- self.layout.addWidget(self.widget)
- self.central_layout.addLayout(self.layout)
- class MyWidget(QWidget):
- def __init__(self, ui_file=_UI_FILEPATH, parent=None):
- super().__init__(parent)
- loader = UiLoader(parent)
- file = QFile(ui_file)
- file.open(QFile.ReadOnly)
- loader.load(file, self)
- file.close()
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- mainWindow = MainWindow(_UI_FILEPATH)
- mainWindow.setWindowTitle(_PROGRAM_NAME_VERSION)
- mainWindow.show()
- sys.exit(app.exec_())
|