import PySide2, RLPy, os
from PySide2 import *
from PySide2.QtCore import *
from PySide2.QtCore import QResource
from PySide2.QtCore import QFile
from PySide2.QtCore import QIODevice
from PySide2.QtGui import *
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import *
from PySide2.shiboken2 import wrapInstance
import csv
myDialog = None
eventCallback = None
eventCallbackId = None
#---------------------------------------
# event callback class
#---------------------------------------
class MyEventCallback(RLPy.REventCallback):
def __init__(self):
RLPy.REventCallback.__init__(self)
def OnObjectSelectionChanged(self):
icpropSelectionChanged()
#---------------------------------------
# on exit cleanup procedure
#---------------------------------------
def onExitProc(result):
global eventCallbackId
# unregister event handler
status = RLPy.REventHandler.UnregisterCallback(eventCallbackId)
#---------------------------------------
# initialize
#---------------------------------------
def initialize_script():
global myDialog
# register RL event callback
eventCallback = MyEventCallback()
eventCallbackId = RLPy.REventHandler.RegisterCallback(eventCallback)
if myDialog is None:
myDialog = create_dialog()
# setup exit proc
myDialog.finished.connect(onExitProc)
myDialog.show()
#---------------------------------------
# create the main dialog window
#---------------------------------------
def create_dialog():
global myDialog
main_widget = wrapInstance(int(RLPy.RUi.GetMainWindow()), PySide2.QtWidgets.QWidget)
dlg = PySide2.QtWidgets.QDialog(main_widget) # set parent to main window
# Load Qt Ui file into ui_widget
ui_file = QtCore.QFile(os.path.dirname(__file__) + "/uiLayoutFile.ui")
ui_file.open(QtCore.QFile.ReadOnly)
ui_widget = QtUiTools.QUiLoader().load(ui_file)
ui_file.close()
# Make the RL Dialog
ui_dialog = RLPy.RUi.CreateRDialog()
# Wrap to PySide Dialog
pyside_dialog = wrapInstance(int(ui_dialog.GetWindow()), QtWidgets.QDialog)
ui_layout = pyside_dialog.layout()
ui_widget.hide
ui_layout.addWidget(ui_widget)
dlg.setLayout(ui_layout)
return dlg
#################################################
#---------------------------------------
# Start Script
#---------------------------------------
def run_script():
initialize_script()