Maya Python:按钮始终位于 window 的中心
Maya Python: Button always at the center of the window
我开始尝试使用 Maya python,并且正在尝试做一些 UI。
我遇到了一个非常奇怪的问题,我无法让按钮停留在 windows 的中心。
我尝试了不同的方法,但似乎没有任何效果,这是代码:
import maya.cmds as cmds
cmds.window( width=200 )
WS = mc.workspaceControl("dockName", retain = False, floating = True,mw=80)
submit_widget = cmds.rowLayout(numberOfColumns=1, p=WS)
cmds.button( label='Submit Job',width=130,align='center', p=submit_widget)
cmds.showWindow()
这是一个简单的版本,但我仍然无法使用它。
有人可以帮我吗?
老实说,我不知道答案,因为任何时候我都必须深入研究 Maya 的原生 UI 东西,这让我质疑自己的生活。
所以我知道这不是您要的,但我会选择:改用 PySide
。乍一看,它可能会让您“哇,这太难了”,但它也好一百万倍(实际上更容易)。它更强大,更灵活,有很好的文档,并且还可以在 Maya 之外使用(因此对学习很有用)。 Maya 自己的界面使用相同的框架,因此您甚至可以在熟悉后使用 PySide
对其进行编辑。
这里有一个 bare-bones 在 window 中创建居中按钮的示例:
# Import PySide libraries.
from PySide2 import QtCore
from PySide2 import QtWidgets
class MyWindow(QtWidgets.QWidget): # Create a class for our window, which inherits from `QWidget`
def __init__(self, parent=None): # The class's constructor.
super(MyWindow, self).__init__(parent) # Initialize its `QWidget` constructor method.
self.my_button = QtWidgets.QPushButton("My button!") # Create a button!
self.my_layout = QtWidgets.QVBoxLayout() # Create a vertical layout!
self.my_layout.setAlignment(QtCore.Qt.AlignCenter) # Center the horizontal alignment.
self.my_layout.addWidget(self.my_button) # Add the button to the layout.
self.setLayout(self.my_layout) # Make the window use this layout.
self.resize(300, 300) # Resize the window so it's not tiny.
my_window_instance = MyWindow() # Create an instance of our window class.
my_window_instance.show() # Show it!
还不错吧?
我开始尝试使用 Maya python,并且正在尝试做一些 UI。 我遇到了一个非常奇怪的问题,我无法让按钮停留在 windows 的中心。 我尝试了不同的方法,但似乎没有任何效果,这是代码:
import maya.cmds as cmds
cmds.window( width=200 )
WS = mc.workspaceControl("dockName", retain = False, floating = True,mw=80)
submit_widget = cmds.rowLayout(numberOfColumns=1, p=WS)
cmds.button( label='Submit Job',width=130,align='center', p=submit_widget)
cmds.showWindow()
这是一个简单的版本,但我仍然无法使用它。 有人可以帮我吗?
老实说,我不知道答案,因为任何时候我都必须深入研究 Maya 的原生 UI 东西,这让我质疑自己的生活。
所以我知道这不是您要的,但我会选择:改用 PySide
。乍一看,它可能会让您“哇,这太难了”,但它也好一百万倍(实际上更容易)。它更强大,更灵活,有很好的文档,并且还可以在 Maya 之外使用(因此对学习很有用)。 Maya 自己的界面使用相同的框架,因此您甚至可以在熟悉后使用 PySide
对其进行编辑。
这里有一个 bare-bones 在 window 中创建居中按钮的示例:
# Import PySide libraries.
from PySide2 import QtCore
from PySide2 import QtWidgets
class MyWindow(QtWidgets.QWidget): # Create a class for our window, which inherits from `QWidget`
def __init__(self, parent=None): # The class's constructor.
super(MyWindow, self).__init__(parent) # Initialize its `QWidget` constructor method.
self.my_button = QtWidgets.QPushButton("My button!") # Create a button!
self.my_layout = QtWidgets.QVBoxLayout() # Create a vertical layout!
self.my_layout.setAlignment(QtCore.Qt.AlignCenter) # Center the horizontal alignment.
self.my_layout.addWidget(self.my_button) # Add the button to the layout.
self.setLayout(self.my_layout) # Make the window use this layout.
self.resize(300, 300) # Resize the window so it's not tiny.
my_window_instance = MyWindow() # Create an instance of our window class.
my_window_instance.show() # Show it!
还不错吧?