maya python qt sample

https://github.com/aizwellenstan/maya_hik_retarget_tool
```python
#-*- coding:utf-8
VERSION = 'v1'

import os
import sys
import maya

sys.path.append(r'../Qt.py/python')
from Qt import __binding__, QtGui, QtCore, QtWidgets
if __binding__ == 'PySide2':
    import pyside2uic as pysideuic
    from shiboken2 import wrapInstance
elif __binding__ == 'PySide':
    import pysideuic
    from shiboken import wrapInstance

import maya.OpenMayaUI as apiUI

def getMainWindow():
    pointer = apiUI.MQtUtil.mainWindow()
    if pointer is not None:
        _MainWindow = wrapInstance(long(pointer), QtWidgets.QWidget)
    return _MainWindow

#####################UI########################
class Main_Window(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(Main_Window, self).__init__(parent)
        self.inint_widget()

    def selectFile(self, ftype):
        if self.sourcefname is not None and os.path.isfile(self.sourcefname):
            directory = self.sourcefname
        else:
            directory = QtCore.QDir.currentPath()
        dialog = QtWidgets.QFileDialog.getOpenFileName(
            self, 'Select fbx file', directory,  'fbx files (*fbx)')
        if dialog[0] != 0:
            if ftype == 'source':
                self.sourcefname = str(dialog[0])
                self.sourceflineEdit.setText(str(dialog[0]))
            else:
                self.targetfname = str(dialog[0])
                self.targetflineEdit.setText(str(dialog[0]))

    def run(self, sourceFile, targetFile):
        import merge
        reload(merge)
        print(sourceFile, targetFile)
        merge.main(sourceFile, targetFile)

    def inint_widget(self):
        QV_0_ayout   = QtWidgets.QVBoxLayout()
        QV_A_ayout   = QtWidgets.QHBoxLayout()       
        QV_B_ayout   = QtWidgets.QHBoxLayout()
        QV_C_ayout   = QtWidgets.QVBoxLayout()
        QV_D_ayout   = QtWidgets.QHBoxLayout()
        QV_E_ayout   = QtWidgets.QHBoxLayout()

        self.sourcefname = ''
        self.sourceflineEdit = QtWidgets.QLineEdit()
        label = QtWidgets.QLabel('Source:       ')
        QV_A_ayout.addWidget(label)
        QV_A_ayout.addWidget(self.sourceflineEdit)
        sourceBrouseBtn = QtWidgets.QPushButton('...')
        QV_A_ayout.addWidget(sourceBrouseBtn)
        sourceBrouseBtn.clicked.connect(lambda: self.selectFile('source'))

        self.targetfname = ''
        self.targetflineEdit = QtWidgets.QLineEdit()
        label = QtWidgets.QLabel('Target:       ')
        QV_B_ayout.addWidget(label)
        QV_B_ayout.addWidget(self.targetflineEdit)
        targetBrouseBtn = QtWidgets.QPushButton('...')
        QV_B_ayout.addWidget(targetBrouseBtn)
        targetBrouseBtn.clicked.connect(lambda: self.selectFile('target'))

        QV_0_ayout.addLayout(QV_D_ayout)
        QV_0_ayout.addLayout(QV_E_ayout)
        QV_0_ayout.addLayout(QV_A_ayout)
        QV_0_ayout.addLayout(QV_B_ayout)

        # self.seqListTextField = QtWidgets.QLineEdit()
        # self.seqListTextField.setFixedHeight(20)
        # self.seqListTextField.setPlaceholderText('Enter Seq Seperate With Comma')
        # self.seqListTextField.setToolTip('s026, s027')
        # self.seqListTextField.setObjectName('testLineEdit')

        button_layout = QtWidgets.QLabel(' ')
        runBtn = QtWidgets.QPushButton('Transfer')
        QV_C_ayout.addWidget(runBtn)
        runBtn.clicked.connect(lambda: self.run(self.sourcefname, self.targetfname))
        # shotgun_button = QtWidgets.QPushButton('OPEN_SHOTGUN')
        # QV_C_ayout.addWidget(self.seqListTextField)
        # QV_C_ayout.addWidget(shotgun_button)
        # shotgun_button.setStyleSheet("background-color: orange")
        
        QVlayout = QtWidgets.QVBoxLayout()    
        QVlayout.addLayout(QV_0_ayout)
        QVlayout.addLayout(QV_C_ayout)

        w = QtWidgets.QWidget()
        w.setLayout(QVlayout)
        self.setCentralWidget(w)
        self.setWindowTitle('Animation Retarget Tool')

########################################################

def run():
    global main_window
    try:
        main_window.close()
    except:
        pass
    maya_main_wid = getMainWindow()
    main_window = Main_Window(parent = maya_main_wid)
    main_window.show()
    main_window.setMinimumSize(600,250)
    main_window.setMaximumSize(600,250)

if __name__ == '__main__':
    run()
```