可调整大小 window 命令 python-maya
Resizeable window command python-maya
自从我开始使用 Python 编写脚本以来,我一直遇到这个问题。
即使我在主 "window" 命令中添加了 "width" 和 "Height" 标志,但大小总是根据最近的操作进行调整。 .明白我的意思吗?
难道它不应该总是给我在宽度和高度标志后键入的相同尺寸吗?
有什么问题?
我不想使用 sizeable 标志,因为在使用 windows 时我总是需要调整它们。
这种奇怪行为背后的真正原因可能是什么?
我想打开我的window,不管我通过拖动window的一角来调整它的大小多少次...
如有必要,这是我的 python 代码...
import maya.cmds as cmds
def createGUI():
#If the window already exists, it will delete it.
if cmds.window('myWindow',exists=True):
cmds.deleteUI('myWindow')
#Creation window command
winControl=cmds.window('myWindow',title='BookShelf Generator',resizeToFitChildren=True, sizeable=False) #s=False does not allow the user to change the size of the window
#Windows Layout
#Top Part
#Header image
cmds.rowColumnLayout(w=400)
cmds.image( image='/home/s4915717/Stefano_Feltre_Scripting/artefacts/Images/UIheader02.png' )
cmds.setParent("..")
cmds.columnLayout(adjustableColumn=True,rowSpacing=0)
cmds.frameLayout( label='BookShelf Options',collapsable=False, mw=5, mh=5 )
cmds.text(label='Modify the value on the interace to create different aspect of the BookShelf.', align='center', height = 20)
cmds.separator(height=5)
cmds.columnLayout()
#Center Part
ShelfSizeControl=cmds.intSliderGrp(label='Shelfs Size',minValue=5.0,maxValue=200.0, value=50.0,field=True)
NumShelfsColumnControl = cmds.intSliderGrp(label='Num Shelfs Column', minValue=1, maxValue=10, value=3,field=True)
NumShelfsRowControl = cmds.intSliderGrp(label='Num Shelfs Row', minValue=1, maxValue=10, value=3,field=True)
GapShelfsColumnControl = cmds.intSliderGrp(label='Gap Column Shelfs', minValue=10, maxValue=50, value=10,field=True)
GapShelfsRowControl = cmds.intSliderGrp(label='Gap Row Shelfs', minValue=1, maxValue=30, value=1,field=True)
GapBooksControl = cmds.intSliderGrp(label='Gap Books', minValue=0, maxValue=1, value=0,field=True) #da controllare il valore massimo
cmds.text(label='Books Direction', align='center', height = 20)
DirectionControl = cmds.radioCollection()
Direction0 = cmds.radioButton( label='Front',align='left')
Direction1 = cmds.radioButton( label='Back',align='center')
Direction2 = cmds.radioButton( label='Random',align='right')
cmds.radioCollection( DirectionControl, edit=True, select=Direction0 )
cmds.columnLayout(adjustableColumn=True,rowSpacing=0)
cmds.separator(height=5)
#Bottom Part
#cmds.shelfButton(annotation='BookShelf Generator - Stefano Feltre', image = "commandButton.png", l='BookShelf', p='Custom', imageOverlayLabel='Spider', overlayLabelBackColor=(.6, .6, .6, .6), command=str("from SpiderGen import gui;reload(gui);gui.createUI()"))
#vedere come caricare un bottone nel custom
#Signature
cmds.text(label='Stefano Feltre - 2017', w=400, h=30, font="smallPlainLabelFont")
#This command make appear the window
cmds.showWindow(winControl)
createGUI()
我在命令"showwindow"之后找到了一个MEL代码来添加。但我无法将其翻译成 Python...这是:
if (`window -q -ex $winName`) deleteUI $winName;
window -t "BookShelf Generator" $winName;
showWindow $winName;
window -e -wh 150 200 $winName;
在你展示你的 window 之后,只需使用相同的 window 命令并制作你想要的任何尺寸?
cmds.showWindow(winControl)
cmds.window('myWindow', e=True, width=500, height=800)
自从我开始使用 Python 编写脚本以来,我一直遇到这个问题。
即使我在主 "window" 命令中添加了 "width" 和 "Height" 标志,但大小总是根据最近的操作进行调整。 .明白我的意思吗?
难道它不应该总是给我在宽度和高度标志后键入的相同尺寸吗?
有什么问题?
我不想使用 sizeable 标志,因为在使用 windows 时我总是需要调整它们。
这种奇怪行为背后的真正原因可能是什么?
我想打开我的window,不管我通过拖动window的一角来调整它的大小多少次...
如有必要,这是我的 python 代码...
import maya.cmds as cmds
def createGUI():
#If the window already exists, it will delete it.
if cmds.window('myWindow',exists=True):
cmds.deleteUI('myWindow')
#Creation window command
winControl=cmds.window('myWindow',title='BookShelf Generator',resizeToFitChildren=True, sizeable=False) #s=False does not allow the user to change the size of the window
#Windows Layout
#Top Part
#Header image
cmds.rowColumnLayout(w=400)
cmds.image( image='/home/s4915717/Stefano_Feltre_Scripting/artefacts/Images/UIheader02.png' )
cmds.setParent("..")
cmds.columnLayout(adjustableColumn=True,rowSpacing=0)
cmds.frameLayout( label='BookShelf Options',collapsable=False, mw=5, mh=5 )
cmds.text(label='Modify the value on the interace to create different aspect of the BookShelf.', align='center', height = 20)
cmds.separator(height=5)
cmds.columnLayout()
#Center Part
ShelfSizeControl=cmds.intSliderGrp(label='Shelfs Size',minValue=5.0,maxValue=200.0, value=50.0,field=True)
NumShelfsColumnControl = cmds.intSliderGrp(label='Num Shelfs Column', minValue=1, maxValue=10, value=3,field=True)
NumShelfsRowControl = cmds.intSliderGrp(label='Num Shelfs Row', minValue=1, maxValue=10, value=3,field=True)
GapShelfsColumnControl = cmds.intSliderGrp(label='Gap Column Shelfs', minValue=10, maxValue=50, value=10,field=True)
GapShelfsRowControl = cmds.intSliderGrp(label='Gap Row Shelfs', minValue=1, maxValue=30, value=1,field=True)
GapBooksControl = cmds.intSliderGrp(label='Gap Books', minValue=0, maxValue=1, value=0,field=True) #da controllare il valore massimo
cmds.text(label='Books Direction', align='center', height = 20)
DirectionControl = cmds.radioCollection()
Direction0 = cmds.radioButton( label='Front',align='left')
Direction1 = cmds.radioButton( label='Back',align='center')
Direction2 = cmds.radioButton( label='Random',align='right')
cmds.radioCollection( DirectionControl, edit=True, select=Direction0 )
cmds.columnLayout(adjustableColumn=True,rowSpacing=0)
cmds.separator(height=5)
#Bottom Part
#cmds.shelfButton(annotation='BookShelf Generator - Stefano Feltre', image = "commandButton.png", l='BookShelf', p='Custom', imageOverlayLabel='Spider', overlayLabelBackColor=(.6, .6, .6, .6), command=str("from SpiderGen import gui;reload(gui);gui.createUI()"))
#vedere come caricare un bottone nel custom
#Signature
cmds.text(label='Stefano Feltre - 2017', w=400, h=30, font="smallPlainLabelFont")
#This command make appear the window
cmds.showWindow(winControl)
createGUI()
我在命令"showwindow"之后找到了一个MEL代码来添加。但我无法将其翻译成 Python...这是:
if (`window -q -ex $winName`) deleteUI $winName;
window -t "BookShelf Generator" $winName;
showWindow $winName;
window -e -wh 150 200 $winName;
在你展示你的 window 之后,只需使用相同的 window 命令并制作你想要的任何尺寸?
cmds.showWindow(winControl)
cmds.window('myWindow', e=True, width=500, height=800)