Exemple #1
0
 def __init__(self,shot):
     self.shot = shot
     exportTime = time.time()
     tmpTime = time.localtime(exportTime)
     self.dateStr = '%0.4d_%0.2d_%0.2d'%(tmpTime.tm_year, tmpTime.tm_mon, tmpTime.tm_mday)
     self.localPath = Path.Path().GetLocalPath()+'/'+Get.Get().GetActiveProject()+'/FarmBatch/'+self.dateStr+'/'+self.shot+'/'
     self.serverPath = lsrunas.lsrunas().Mili_Back_Root+'/'+Get.Get().GetActiveProject()+'/FarmBatch/'+self.dateStr+'/'+self.shot+'/'
    def getFilePath(self):
        #ServerProjectsPath\%ProjectName%\Rigs\%Type%\%Name%\TDAssets\
        Prj = Get.Get().GetActiveProject()
        ServerRoot = Path.Path().GetServerPath()

        allGroup = cmds.ls(type='transform')
        keyGroup = []
        for item in allGroup:
            test = item.split('_')
            if test[-1] == 'GRP' and test[-2] == 'model':
                keyGroup.append(item)
        try:
            tmp_modType = cmds.getAttr(keyGroup[0] + '.Type')
            keyName = cmds.getAttr(keyGroup[0] + '.treeName')
        except:
            #cmds.confirmDialog(title='Oops', message='Plsase open your Rig file first!', button='Gotcha')
            cmds.textField('textServer',
                           text=u'请打开绑定文件,再重新打开此插件,以获取上传路径',
                           edit=True)
            return
        if tmp_modType == 'c':
            modType = 'Characters'
        elif tmp_modType == 'p':
            modType = 'Props'
        else:
            print 'Erro modType:%s' % tmp_modType

        self.ServerRootPath = '%s/%s/Rigs/%s/%s/TDAssets/' % (
            ServerRoot, Prj, modType, keyName
        )  #'ServerProjectsPath/%ProjectName%/Rigs/%Type%/%Name%/TDAssets'
        #print self.ServerRootPath
        textServer = self.ServerRootPath.replace('/', '\\')
        cmds.textField('textServer', text=textServer, edit=True)
 def __init__(self):
     self.Prj = Get.Get().GetActiveProject()  #~ 项目名
     self.ServerRoot = Path.Path().GetServerPath()  #~ 服务器地址
     self.LocalRoot = Path.Path().GetLocalPath()  #~ 本地地址
     self.alLayerShadersInformation = {}  #~ alLayer连接的两个材质球信息,用于手动赋予材质
     self.erroCollecterList = []  #~ 错误信息收集列表
     self.showUploadWindows()
 def __init__(self):
     self.getNamespace()
     ServerRoot = Path.Path().GetServerPath()
     LocalRoot = Path.Path().GetLocalPath()
     Prj = Get.Get().GetActiveProject()
     #//hnas01/data/Projects/DragonNest2/
     self.ServerRootPath = ServerRoot+'/'+Prj+'/'+'Rigs'+'/'+'HugePropsSets'+'/'
     self.LocalRootPath = LocalRoot+'/'+Prj+'/'+'Rigs'+'/'+'HugePropsSets'+'/'
     self.ServerFilePath = ServerRoot+'/'+Prj+'/'+'Rigs'+'/'+'Props'+'/'
 def RefreshInfo(self):
     self.z_HUDCompany = "MiLi Pictures"
     self.z_HUDProject = Get.Get().GetActiveProject() 
     if self.z_HUDAniType:
         pass
     else:
         self.z_HUDAniType = "Animation"
     try:
         fileName = cmds.file(q=True,sn=True,shn=True)
         #get camera
         if fileName:
             sp = fileName.split("_")
             if len(sp) >= 3:
                 self.z_HUDScene = sp[0]
                 self.z_HUDCut = "CUT" + sp[1]
             else:
                 self.z_HUDScene = "None"
                 self.z_HUDCut = "None"
         else:
             self.z_HUDScene = "None"
             self.z_HUDCut = "None"
     except:
         self.z_HUDScene = "None"
         self.z_HUDCut = "None"
     self.z_HUDCameraSize = "2048x1152"
     
     self.z_HUDCameraFocal = self.getCurrentCamera()
     if self.z_HUDCameraFocal:
         pass
     else:
         self.z_HUDCameraFocal = '55'
     
     try:
         cmds.headsUpDisplay('MLHUD_Company', r = True)
         cmds.headsUpDisplay('MLHUD_Project', r = True)
         cmds.headsUpDisplay('MLHUD_CUT', r = True)
         cmds.headsUpDisplay('MLHUD_CameraInfo', r = True)
         cmds.headsUpDisplay("MLHUD_FrameInfo", r = True)
         cmds.headsUpDisplay("MLHUD_User", r = True)
         cmds.headsUpDisplay("MLHUD_Timer", r = True)
         cmds.headsUpDisplay("MLHUD_Description", r = True)
     except:
         pass
    def __init__(self, env=None):
        super(TDsCodeUpload, self).__init__()
        self.env = env
        self.image_path = IMAGEPATH
        if self.env == "maya.exe":
            import Mili.Module.utilties.MiliUser as MiliUser
            import Mili.Module.utilties.lsrunas as lsrunas
            import Mili.Module.utilties.Get as Get
            import Mili.Module.utilties.Path as Path
            reload(lsrunas)
            reload(MiliUser)
            reload(Get)
            reload(Path)

            self.department = MiliUser.MiliUser()['department']
            self.appointment = MiliUser.MiliUser()['appointment']
            self.moduleList = MiliUser.MiliUser().getGroupList()
            self.project = Get.Get().GetActiveProject()
            self.projectList = []
            self.LocalRoot = Path.Path().GetLocalPath()
            self.ServerRoot = Path.Path().GetServerPath()
            listDir = os.listdir('%s/' % self.ServerRoot)
            for item in listDir:
                testList = item.split('.')
                if len(testList) == 1:
                    if testList[0] == 'backUp':
                        pass
                    else:
                        self.projectList.append(item)
        else:
            self.department = DEPARTMENT
            self.appointment = APPOINTMENT
            self.project = PROJECT
            self.moduleList = eval(MODULELIST)
            self.projectList = eval(PROJECTLIST)
            self.LocalRoot = LOCALROOTPATH
            self.ServerRoot = SERVERROOTPATH

        self.showWindows()
        self.setInitValue()
        self.setUserRights()
 def __init__(self):
     Prj = Get.Get().GetActiveProject()
     LocalRootPath = Path.Path().GetLocalPath() + '/' + Prj + '/'  #~ 本地的根地址
     ServerRootPath = Path.Path().GetServerPath() + '/'  #~ 服务器地址
     tmp_current_time = str(datetime.datetime.now())
     self.date = tmp_current_time.split(' ')[0]
     self.filename = cmds.file(q=True, expandName=True).split('/')[-1]
     self.movPath = ''
     self.originalFilePath = cmds.file(q=True,
                                       expandName=True)  #~ 原始maya文件地址
     self.LocalFilePath = LocalRootPath + "Backup/"  #~ 本地拷贝的maya文件的路径,用于lsrunas上传类
     """遍历出服务器maya文件地址"""
     parts = self.originalFilePath.split('/')
     for i in range(2, len(parts) - 1):
         ServerRootPath += parts[i]
         ServerRootPath += '/'
     self.ServerBackupPath = ServerRootPath + 'Playblast/' + self.date + '/'  #~ 服务器maya文件路径,用于lsrunas上传类
     self.LocalPlayblastPath = self.movPath  #~ 本地拍屏文件路径,用于lsrunas上传类
     self.ServerRootPath = ProjectConfig.ProjectConfig().get(
         'PlayblastEditRoot',  #~ 服务器剪辑目录路径,用于lsrunas上传类
         default='//hnas01/Data/Edit/%s/AutoImport/' % Prj)
Exemple #8
0
 def projectMenuItem2(self):
     Prj = Get.Get().GetActiveProject()
     listDir = os.listdir('//hnas01/data/Projects/')
     projectList = []
     for item in listDir:
         testList = item.split('.')
         if len(testList) == 1:
             if testList[0] == 'backUp':
                 pass
             else:
                 projectList.append(item)
         else:
             pass
     for i in range(len(projectList)):
         if projectList[i] == Prj:
             tmp = projectList[0]
             projectList[0] = projectList[i]
             projectList[i] = tmp
     for item in projectList:
         cmds.menuItem(label=item)
     return projectList
Exemple #9
0
 def projectMenuItem(self):
     Prj = Get.Get().GetActiveProject()
     ServerRoot = Path.Path().GetServerPath()
     listDir = os.listdir('%s/' % ServerRoot)
     projectList = []
     for item in listDir:
         testList = item.split('.')
         if len(testList) == 1:
             if testList[0] == 'backUp':
                 pass
             else:
                 projectList.append(item)
         else:
             pass
     for i in range(len(projectList)):
         if projectList[i] == Prj:
             tmp = projectList[0]
             projectList[0] = projectList[i]
             projectList[i] = tmp
     for item in projectList:
         cmds.menuItem(label=item)
     return projectList
Exemple #10
0
    def getherYetiTexture(self):
        self.Project = Get.Get().GetActiveProject()
        self.textureRoot = ProjectConfig.ProjectConfig().get(
            'DeadlineSubmitter_osImgRoot',
            default=r'\\hnas01\outrender') + '\\' + self.Project + '_Texture'
        self.switcher = switchIntermediateTexture.switchIntermediateTexture(
            Project=self.Project,
            textureRoot=self.textureRoot,
            checkTypeList=[
                'pgYetiMaya',
            ])

        if self.switcher.uploadTexAssets(checkOnly=1) != {}:
            cmds.confirmDialog(
                message=
                u'Yeti节点中有丢失的贴图,如果发布.fur文件,农场无法正常渲染这个镜头\n\n请点Confirm来显示丢失的贴图,\n如果您不清楚如何修正丢失的Yeti贴图,请提醒制作Yeti的同事或TD处理'
            )
            self.switcher.uploadTexAssets(checkOnly=2)
            sys.exit()
        if 'copyExtraTexToRelativeDir' not in self.__dict__:
            self.copyExtraTexToRelativeDir = '/Textures/RenderShots/CUT' + '_ManualCache/'
        self.switcher.uploadTexAssets(
            recover=1,
            copyExtraTexToRelativeDir=self.copyExtraTexToRelativeDir)
Exemple #11
0
    def __init__(self):
        self.YetiNodesInformation = []
        self.information()
        if cmds.window('OutputYetiCache', q=1, exists=1):
            cmds.deleteUI('OutputYetiCache')
        Mytool = cmds.window('OutputYetiCache',
                             title='OutputYetiCache',
                             width=530,
                             sizeable=False)
        cmds.rowColumnLayout('mainLayout',
                             numberOfColumns=1,
                             columnWidth=[(1, 530)])
        cmds.text(label='Yeti Cache Output',
                  height=30,
                  backgroundColor=[0.5, 0.5, 0.6])
        cmds.separator(style='out')
        cmds.text(' ')
        cmds.separator(style='out')
        cmds.scrollLayout('scrollLayoutUnique', height=200)

        cmds.rowColumnLayout(numberOfColumns=2,
                             columnWidth=[(1, 330), (2, 170)])

        cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 330)])
        cmds.text(u'Yeti节点名称',
                  align='left',
                  backgroundColor=[0.5, 0.4, 0.5],
                  font='boldLabelFont',
                  height=30)

        #显示Yeti节点
        cmds.rowColumnLayout(numberOfColumns=3,
                             columnWidth=[(1, 250), (2, 40), (3, 25)])
        allYeties = cmds.ls(type='pgYetiMaya')
        self.selectYeties = cmds.ls(sl=1, leaf=1, dag=1, type='pgYetiMaya')
        #测试勾选情况
        for YetiNode in allYeties:
            if YetiNode in self.selectYeties:
                try:
                    transformNode = cmds.listRelatives(YetiNode, parent=True)
                    if cmds.objectType(transformNode,
                                       isType='transform') == True:
                        flag = True
                    else:
                        flag = False
                except:
                    flag = False
            else:
                flag = False

            for YetiNodeInfo in self.YetiNodesInformation:
                if YetiNodeInfo['ShapeName'] == YetiNode:
                    ID = YetiNodeInfo['ID']

            cmds.text('%s' % YetiNode, align='left', height=30)
            cmds.text('active:', enable=False, height=30)
            cmds.checkBox('checkBox_%s' % ID,
                          l='',
                          visible=True,
                          value=flag,
                          height=30)
        cmds.setParent('..')

        cmds.setParent('..')

        #显示Yeti节点的参数
        cmds.rowColumnLayout(numberOfColumns=3,
                             columnWidth=[(1, 60), (2, 60), (3, 60)])
        cmds.text(u'起始帧',
                  align='center',
                  backgroundColor=[0.6, 0.5, 0.5],
                  font='boldLabelFont',
                  height=30)
        cmds.text(u'结束帧',
                  align='center',
                  backgroundColor=[0.5, 0.6, 0.5],
                  font='boldLabelFont',
                  height=30)
        cmds.text(u'采样值',
                  align='center',
                  backgroundColor=[1, 0.7, 0.5],
                  font='boldLabelFont',
                  height=30)
        for YetiNodeInfo in self.YetiNodesInformation:
            ID = YetiNodeInfo['ID']
            cmds.textField('startFrame_%s' % ID,
                           text=u'%s' % YetiNodeInfo['startFrame'],
                           backgroundColor=[0.6, 0.5, 0.5],
                           height=30)
            cmds.textField('endFrame_%s' % ID,
                           text=u'%s' % YetiNodeInfo['endFrame'],
                           backgroundColor=[0.5, 0.6, 0.5],
                           height=30)
            cmds.textField('sampleValue_%s' % ID,
                           text=u'%s' % YetiNodeInfo['sampleValue'],
                           backgroundColor=[1, 0.7, 0.5],
                           height=30)
        cmds.setParent('..')
        cmds.setParent('..')

        cmds.setParent('..')  #scrollLayout
        cmds.separator(style='out')

        cmds.rowColumnLayout(numberOfColumns=4,
                             columnWidth=[(1, 120), (2, 50), (3, 120),
                                          (4, 50)])
        cmds.text('updateViewport_text',
                  label='updateViewport :',
                  align='center',
                  font='boldLabelFont',
                  height=25,
                  backgroundColor=[0.5, 0.4, 0.5])
        cmds.checkBox('updateViewport',
                      l='',
                      align='center',
                      value=False,
                      backgroundColor=[0.5, 0.4, 0.5])
        cmds.text('generatePreview_text',
                  label='generatePreview :',
                  align='center',
                  font='boldLabelFont',
                  height=25,
                  backgroundColor=[0.5, 0.4, 0.5])
        cmds.checkBox('generatePreview',
                      l='',
                      value=False,
                      align='center',
                      backgroundColor=[0.5, 0.4, 0.5])
        cmds.setParent('..')

        cmds.text(' ')

        cmds.rowColumnLayout(numberOfColumns=3,
                             columnWidth=[(1, 70), (2, 420), (3, 40)])
        cmds.text(u'发布地址:',
                  align='center',
                  font='boldLabelFont',
                  height=25,
                  backgroundColor=[0.5, 0.4, 0.5])
        cmds.textField('savePath', text=' ', height=25, editable=False)
        cmds.iconTextButton(
            style='iconOnly',
            image='HIKCharacterization_ToolBar_ToggleNameMatch.png',
            command=lambda *arg: self.getSavePath())
        cmds.setParent('..')

        cmds.rowColumnLayout(numberOfColumns=2,
                             columnWidth=[(1, 70), (2, 460)])
        cmds.text(u'贴图池子:',
                  align='center',
                  font='boldLabelFont',
                  height=25,
                  backgroundColor=[0.5, 0.4, 0.5])
        self.Project = Get.Get().GetActiveProject()
        self.textureRoot = ProjectConfig.ProjectConfig().get(
            'DeadlineSubmitter_osImgRoot',
            default=r'\\hnas01\outrender') + '\\' + self.Project + '_Texture'
        cmds.textField('textureRoot',
                       text=self.textureRoot,
                       height=25,
                       editable=False)
        cmds.setParent('..')

        cmds.button(parent='mainLayout',
                    label=u'Go!',
                    height=45,
                    command=lambda *arg: self.goCache())
        cmds.separator(parent='mainLayout', style='out')

        cmds.showWindow(Mytool)
    def __init__(self, parent=None):
        globalDefine()
        if selfApp.lower() != 'maya.exe':
            app = QtGui.QApplication(sys.argv)
        else:
            import maya.OpenMayaUI as omui
            try:
                mayaWindowParent = shiboken.wrapInstance(
                    long(omui.MQtUtil.mainWindow()), QtGui.QWidget)
            except:
                pass
            parent = mayaWindowParent
        super(RedmineErroRepoter, self).__init__(parent)
        self.imageFilePath = ''
        self.imageFileName = ''
        global selfWidget
        if selfWidget != None:
            selfWidget.close()
        selfWidget = self
        self.setWindowTitle(u'Redmine报错工具')
        boldFont = QtGui.QFont()
        boldFont.setBold(True)

        LogonGroupBox = QtGui.QGroupBox(u'用户登录')
        NameLabel = QtGui.QLabel()
        NameLabel.setText(u'用户* :')
        NameLabel.setFixedWidth(50)
        NameLabel.setFont(boldFont)
        self.usr = QtGui.QLineEdit()
        self.usr.setFixedWidth(200)
        PasswordLabel = QtGui.QLabel()
        PasswordLabel.setText(u'密码* :')
        PasswordLabel.setFixedWidth(50)
        PasswordLabel.setFont(boldFont)
        self.password = QtGui.QLineEdit()
        self.password.setFixedWidth(200)
        self.password.setEchoMode(QtGui.QLineEdit.Password)
        grid0 = QtGui.QGridLayout()
        grid0.addWidget(NameLabel, 1, 0)
        grid0.addWidget(self.usr, 1, 1)
        grid0.addWidget(PasswordLabel, 2, 0)
        grid0.addWidget(self.password, 2, 1)
        LogonGroupBox.setFixedHeight(100)
        LogonGroupBox.setLayout(grid0)

        Label1 = QtGui.QLabel()
        Label1.setText(u'跟踪*:')
        Label1.setFont(boldFont)
        self.tracking = QtGui.QComboBox()
        self.tracking.setEnabled(True)
        self.tracking.setEditable(False)
        self.tracking.addItem(u'问题')
        self.tracking.setFixedWidth(50)
        Label2 = QtGui.QLabel()
        Label2.setText(u'主题*:')
        Label2.setFont(boldFont)
        self.topic = QtGui.QLineEdit()
        self.topic.setMinimumWidth(400)
        Label3 = QtGui.QLabel()
        Label3.setText(u'描述:')
        screenShotButton = QtGui.QPushButton(u'截屏')
        screenShotButton.clicked.connect(self.screenShot)
        screenShotButton.setFixedWidth(50)
        previewButton = QtGui.QPushButton(u'预览')
        previewButton.clicked.connect(self.preview)
        previewButton.setFixedWidth(50)
        uploadImageButton = QtGui.QPushButton(u'上传图片')
        uploadImageButton.clicked.connect(self.uploadImage)
        uploadImageButton.setFixedWidth(60)
        toolLayout = QtGui.QHBoxLayout()
        toolLayout.addWidget(uploadImageButton)
        toolLayout.addWidget(previewButton)
        toolLayout.addWidget(screenShotButton)
        toolLayout.addStretch(1)
        self.description = QtGui.QTextEdit()
        grid1 = QtGui.QGridLayout()
        grid1.addWidget(Label1, 1, 0)
        grid1.addWidget(self.tracking, 1, 1)
        grid1.addWidget(Label2, 2, 0)
        grid1.addWidget(self.topic, 2, 1)
        grid1.addWidget(Label3, 3, 0)
        grid1.addLayout(toolLayout, 3, 1)
        grid1.addWidget(self.description, 4, 1, 5, 1)

        conditionLabel = QtGui.QLabel()
        conditionLabel.setText(u'状态*:')
        conditionLabel.setFont(boldFont)
        conditionLabel.setAlignment(QtCore.Qt.AlignRight)
        self.condition = QtGui.QComboBox()
        self.condition.addItem(u'新建')
        self.condition.addItem(u'进行中')
        self.condition.addItem(u'暂停')
        self.condition.addItem(u'已解决')
        self.condition.addItem(u'反馈')
        self.condition.setFixedWidth(60)
        priorityLabel = QtGui.QLabel()
        priorityLabel.setText(u'优先级*:')
        priorityLabel.setFont(boldFont)
        priorityLabel.setAlignment(QtCore.Qt.AlignRight)
        self.priority = QtGui.QComboBox()
        self.priority.addItem(u'低')
        self.priority.addItem(u'普通')
        self.priority.addItem(u'重要')
        self.priority.addItem(u'紧急')
        self.priority.addItem(u'重要紧急')
        self.priority.setFixedWidth(70)
        assignedLabel = QtGui.QLabel()
        assignedLabel.setText(u'指派给*:')
        assignedLabel.setFont(boldFont)
        assignedLabel.setAlignment(QtCore.Qt.AlignRight)
        self.assigned = QtGui.QComboBox()
        self.assigned.setFixedWidth(70)
        self.assignedTo()
        #finishDateLabel = QtGui.QLabel()
        #finishDateLabel.setText(u'完成日期:')
        #finishDateLabel.setAlignment(QtCore.Qt.AlignRight)
        self.finishDate = QtGui.QLineEdit()
        global globalStartDate
        tmpFinishDate = globalStartDate.split('-')
        self.finishDateInPlan = tmpFinishDate[0] + '-' + tmpFinishDate[
            1] + '-' + str((int(tmpFinishDate[2]) + 5))
        self.finishDate.setText(self.finishDateInPlan)
        playLabel = QtGui.QLabel()
        playLabel.setText(u'场次:')
        playLabel.setAlignment(QtCore.Qt.AlignRight)
        self.play = QtGui.QLineEdit()
        global globalPlay
        self.play.setText(globalPlay)
        shotLabel = QtGui.QLabel()
        shotLabel.setText(u'镜号:')
        shotLabel.setAlignment(QtCore.Qt.AlignRight)
        self.shot = QtGui.QLineEdit()
        global globalShot
        self.shot.setText(globalShot)
        submitDepartmentLabel = QtGui.QLabel()
        submitDepartmentLabel.setText(u'提出部门*:')
        submitDepartmentLabel.setFont(boldFont)
        submitDepartmentLabel.setAlignment(QtCore.Qt.AlignRight)
        self.submitDepartment = QtGui.QComboBox()
        global globalDepartment
        self.submitDepartment.addItem(globalDepartment)
        submitPersonLabel = QtGui.QLabel()
        submitPersonLabel.setText(u'提出问题者*:')
        submitPersonLabel.setFont(boldFont)
        submitPersonLabel.setAlignment(QtCore.Qt.AlignRight)
        self.submitPerson = QtGui.QLineEdit()
        global globalName
        self.submitPerson.setText(globalName)
        reasonLabel = QtGui.QLabel()
        reasonLabel.setText(u'问题原因:')
        reasonLabel.setAlignment(QtCore.Qt.AlignRight)
        self.reason = QtGui.QLineEdit()
        grid2 = QtGui.QGridLayout()
        grid2.addWidget(conditionLabel, 1, 0)
        grid2.addWidget(self.condition, 1, 1)
        grid2.addWidget(priorityLabel, 2, 0)
        grid2.addWidget(self.priority, 2, 1)
        grid2.addWidget(assignedLabel, 3, 0)
        grid2.addWidget(self.assigned, 3, 1)
        grid2.addWidget(QtGui.QLabel(' '))
        #grid2.addWidget(finishDateLabel,5,0)
        #grid2.addWidget(self.finishDate,5,1)
        grid2.addWidget(playLabel, 6, 0)
        grid2.addWidget(self.play, 6, 1)
        grid2.addWidget(shotLabel, 7, 0)
        grid2.addWidget(self.shot, 7, 1)
        grid2.addWidget(submitDepartmentLabel, 8, 0)
        grid2.addWidget(self.submitDepartment, 8, 1)
        grid2.addWidget(submitPersonLabel, 9, 0)
        grid2.addWidget(self.submitPerson, 9, 1)
        grid2.addWidget(reasonLabel, 10, 0)
        grid2.addWidget(self.reason, 10, 1)

        startDateLabel = QtGui.QLabel()
        startDateLabel.setText(u'开始日期:')
        startDateLabel.setAlignment(QtCore.Qt.AlignRight)
        self.startDate = QtGui.QLineEdit()
        #global globalStartDate
        self.startDate.setText(globalStartDate)
        #finishDatePlanLabel = QtGui.QLabel()
        #finishDatePlanLabel.setText(u'计划完成日期:')
        #finishDatePlanLabel.setAlignment(QtCore.Qt.AlignRight)
        self.finishDatePlan = QtGui.QLineEdit()
        self.finishDatePlan.setText(self.finishDateInPlan)
        finishTimeLabel = QtGui.QLabel()
        finishTimeLabel.setText(u'预期时间:')
        finishTimeLabel.setAlignment(QtCore.Qt.AlignRight)
        self.finishTime = QtGui.QLineEdit()
        self.finishTime.setText(u'小时')
        self.finishTime.setFixedWidth(100)
        finishPercentLabel = QtGui.QLabel()
        finishPercentLabel.setText(u'% 完成:')
        finishPercentLabel.setAlignment(QtCore.Qt.AlignRight)
        self.finishPercent = QtGui.QComboBox()
        self.finishPercent.setFixedWidth(60)
        self.finishPercent.addItem('0%')
        self.finishPercent.addItem('10%')
        self.finishPercent.addItem('20%')
        self.finishPercent.addItem('30%')
        self.finishPercent.addItem('40%')
        self.finishPercent.addItem('50%')
        self.finishPercent.addItem('60%')
        self.finishPercent.addItem('70%')
        self.finishPercent.addItem('80%')
        self.finishPercent.addItem('90%')
        self.finishPercent.addItem('100%')
        finalSolutionLabel = QtGui.QLabel()
        finalSolutionLabel.setText(u'终极解决方案:')
        finalSolutionLabel.setAlignment(QtCore.Qt.AlignRight)
        self.finalSolution = QtGui.QLineEdit()
        finalSolutionPersonLabel = QtGui.QLabel()
        finalSolutionPersonLabel.setText(u'解决人:')
        finalSolutionPersonLabel.setAlignment(QtCore.Qt.AlignRight)
        self.finalSolutionPerson = QtGui.QLineEdit()
        belongingLabel = QtGui.QLabel()
        belongingLabel.setText(u'归属*:')
        belongingLabel.setFont(boldFont)
        belongingLabel.setAlignment(QtCore.Qt.AlignRight)
        self.belonging = QtGui.QComboBox()
        self.belonging.addItem(u'生产问题')
        responsiblePersonLabel = QtGui.QLabel()
        responsiblePersonLabel.setText(u'责任人:')
        responsiblePersonLabel.setAlignment(QtCore.Qt.AlignRight)
        self.responsiblePerson = QtGui.QLineEdit()
        responsibleDepartmentLabel = QtGui.QLabel()
        responsibleDepartmentLabel.setText(u'责任部门:')
        responsibleDepartmentLabel.setAlignment(QtCore.Qt.AlignRight)
        self.responsibleDepartment = QtGui.QLineEdit()
        provisionalSolutionLabel = QtGui.QLabel()
        provisionalSolutionLabel.setText(u'临时解决方案:')
        provisionalSolutionLabel.setAlignment(QtCore.Qt.AlignRight)
        self.provisionalSolution = QtGui.QLineEdit()

        projtctNameLabel = QtGui.QLabel()
        projtctNameLabel.setText(u'项目名:')
        projtctNameLabel.setAlignment(QtCore.Qt.AlignRight)
        self.projectName = QtGui.QLineEdit()
        Prj = Get.Get().GetActiveProject()
        self.projectName.setText(Prj)
        propertyNameLabel = QtGui.QLabel()
        propertyNameLabel.setText(u'资产名:')
        propertyNameLabel.setAlignment(QtCore.Qt.AlignRight)
        self.propertyName = QtGui.QLineEdit()
        fileName = cmds.file(q=True, expandName=True).split('/')[-1]
        self.propertyName.setText(fileName)

        grid3 = QtGui.QGridLayout()
        grid3.addWidget(startDateLabel, 1, 0)
        grid3.addWidget(self.startDate, 1, 1)
        #grid3.addWidget(finishDatePlanLabel,2,0)
        #grid3.addWidget(self.finishDatePlan,2,1)
        grid3.addWidget(finishTimeLabel, 3, 0)
        grid3.addWidget(self.finishTime, 3, 1)
        grid3.addWidget(finishPercentLabel, 4, 0)
        grid3.addWidget(self.finishPercent, 4, 1)
        grid3.addWidget(finalSolutionLabel, 5, 0)
        grid3.addWidget(self.finalSolution, 5, 1)
        grid3.addWidget(finalSolutionPersonLabel, 6, 0)
        grid3.addWidget(self.finalSolutionPerson, 6, 1)
        grid3.addWidget(belongingLabel, 7, 0)
        grid3.addWidget(self.belonging, 7, 1)
        grid3.addWidget(responsiblePersonLabel, 8, 0)
        grid3.addWidget(self.responsiblePerson, 8, 1)
        grid3.addWidget(responsibleDepartmentLabel, 9, 0)
        grid3.addWidget(self.responsibleDepartment, 9, 1)
        grid3.addWidget(provisionalSolutionLabel, 10, 0)
        grid3.addWidget(self.provisionalSolution, 10, 1)

        grid3.addWidget(projtctNameLabel, 11, 0)
        grid3.addWidget(self.projectName, 11, 1)
        grid3.addWidget(propertyNameLabel, 12, 0)
        grid3.addWidget(self.propertyName, 12, 1)

        Layout4 = QtGui.QHBoxLayout()
        Layout4.addLayout(grid2)
        Layout4.addSpacing(100)
        Layout4.addLayout(grid3)

        fileUploadLabel = QtGui.QLabel()
        fileUploadLabel.setText(u'上传文件:')
        fileUploadLabel.setFont(boldFont)
        fileUploadLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.fileUploadComboBox = QtGui.QComboBox()
        self.fileUploadComboBox.setFixedWidth(90)
        self.fileUploadComboBox.addItem(u'请设置*')
        self.fileUploadComboBox.addItem(u'上传当前场景')
        self.fileUploadComboBox.addItem(u'不上传')

        fileUploadLayout = QtGui.QHBoxLayout()
        fileUploadLayout.addStretch(1)
        fileUploadLayout.addWidget(fileUploadLabel)
        fileUploadLayout.addWidget(self.fileUploadComboBox)

        upLoadButton = QtGui.QPushButton(u'上传')
        upLoadButton.setFixedWidth(70)
        upLoadButton.clicked.connect(self.upload)
        closeButton = QtGui.QPushButton(u'关闭')
        closeButton.setFixedWidth(70)
        closeButton.clicked.connect(self.close)
        buttonLayout = QtGui.QHBoxLayout()
        buttonLayout.addStretch(1)
        buttonLayout.addWidget(upLoadButton)
        buttonLayout.addWidget(closeButton)

        self.mainlayout = QtGui.QVBoxLayout()
        self.mainlayout.addWidget(LogonGroupBox)
        self.mainlayout.addSpacing(25)
        self.mainlayout.addLayout(grid1)
        self.mainlayout.addSpacing(25)
        self.mainlayout.addLayout(Layout4)
        self.mainlayout.addSpacing(25)
        self.mainlayout.addLayout(fileUploadLayout)
        self.mainlayout.addSpacing(10)
        self.mainlayout.addLayout(buttonLayout)
        self.setLayout(self.mainlayout)

        flags = QtCore.Qt.WindowFlags()
        flags |= QtCore.Qt.Tool
        self.setWindowFlags(flags)
        self.move(500, 100)
        self.show()