Skip to content

Instantly share code, notes, and snippets.

@davidas13
Forked from fredrikaverpil/maya_floating_win.py
Created June 25, 2018 07:44
Show Gist options
  • Select an option

  • Save davidas13/584dd74149bb72b94585c48905f5ff69 to your computer and use it in GitHub Desktop.

Select an option

Save davidas13/584dd74149bb72b94585c48905f5ff69 to your computer and use it in GitHub Desktop.
Window floating atop Maya 2017
from PySide2 import QtWidgets, QtCore
def _maya_main_window():
"""Return Maya's main window"""
for obj in QtWidgets.qApp.topLevelWidgets():
if obj.objectName() == 'MayaWindow':
return obj
raise RuntimeError('Could not find MayaWindow instance')
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, parent):
super(MyWindow, self).__init__(parent)
self.setWindowTitle('My window') # Window title
self.setObjectName('MyWindowObj') # Window object name
self.setWindowFlags(QtCore.Qt.Window) # Window type
# Makes Maya perform magic which makes the window stay
# on top in OS X and Linux. As an added bonus, it'll
# make Maya remember the window position
self.setProperty("saveWindowPref", True)
# Widgets setup
self.widget = QtWidgets.QWidget()
self.layout = QtWidgets.QVBoxLayout()
self.button = QtWidgets.QPushButton('Yoghurt')
self.layout.addWidget(self.button)
self.widget.setLayout(self.layout)
self.setCentralWidget(self.widget)
window = MyWindow(parent=_maya_main_window())
window.show()
from PySide2 import QtWidgets, QtCore
from shiboken2 import wrapInstance
from maya import OpenMayaUI as omui
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, parent):
super(MyWindow, self).__init__(parent)
self.setWindowTitle('My window') # Window title
self.setObjectName('MyWindow') # Window object name
self.setWindowFlags(QtCore.Qt.Window) # Window type
# Makes Maya perform magic which makes the window stay
# on top in OS X and Linux. As an added bonus, it'll
# make Maya remember the window position
self.setProperty("saveWindowPref", True)
# Widgets setup
self.widget = QtWidgets.QWidget()
self.layout = QtWidgets.QVBoxLayout()
self.button = QtWidgets.QPushButton('Yoghurt')
self.layout.addWidget(self.button)
self.widget.setLayout(self.layout)
self.setCentralWidget(self.widget)
mainWindowPtr = omui.MQtUtil.mainWindow()
mainWindow = wrapInstance(long(mainWindowPtr), QtWidgets.QMainWindow)
window = MyWindow(parent=mainWindow)
window.show()
from PySide2 import QtWidgets, QtCore
from maya import OpenMayaUI as omui
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, parent):
super(MyWindow, self).__init__()
self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Stays on top of *all* windows in the desktop
self.widget = QtWidgets.QWidget()
self.layout = QtWidgets.QVBoxLayout()
self.button = QtWidgets.QPushButton('Yoghurt')
self.layout.addWidget(self.button)
self.widget.setLayout(self.layout)
self.setCentralWidget(self.widget)
window = MyWindow(parent=omui.MQtUtil.mainWindow())
window.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment