Hey all, 

I'm trying to dive into understanding classes, and Pyside simultaneously, 
should be easy right?  I've been working on trying to build a simple gui - 
most of it has gone pretty easy, although I've started running into an 
issue with widget placement when using tabs.  Everything is where I expect 
it to be on the first tab, but then items are really spaced out and/or 
shifted down too far on any tabs after the first.  I've tried a bunch of 
things, but nothing has worked so far.  If anyone could give me a hand 
figuring out how to fix it, that'd be awesome!  The widgets where the 
problem is are commented.

Thanks!    

from PySide import QtGui
from PySide import QtCore
import maya.OpenMayaUI as mui
from shiboken import wrapInstance
import pymel.core as pm
import maya.cmds as cmds


#===================================================
#Gets the main Maya window
#=================================================== 


def maya_main_window():
    pointer = mui.MQtUtil.mainWindow()
    return wrapInstance(long(pointer), QtGui.QWidget)


#===================================================
#Creates the window class
#=================================================== 


class MyWindow(QtGui.QDialog):
    def __init__(self, parent=maya_main_window()):
        super(MyWindow, self).__init__(parent)
        
        self.setWindowTitle("Anim Tools")
        self.setWindowFlags(QtCore.Qt.Tool)
        
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        
        self.create_ui()
        self.create_connections()
    
    def create_ui(self):
        
        #===================================================
        #UI Elements
        #=================================================== 
        
        #Create Tabs
        self.tab_widget = QtGui.QTabWidget()
        self.tab1 = QtGui.QWidget()
        self.tab2 = QtGui.QWidget()
        self.tab3 = QtGui.QWidget()
        self.tab_widget.addTab(self.tab1, "Key Tools")
        self.tab_widget.addTab(self.tab2, "I/O")
        self.tab_widget.addTab(self.tab3, "Temp")
        
        #Tab1
        self.shiftLbl = QtGui.QLabel("Shifts keyframes of the selected 
object.")
        self.label1 = QtGui.QLabel("Number of frames to shift:")
        self.spinBox1 = QtGui.QSpinBox()
        self.spinBox1.setRange(-10000, 10000)
        self.spinBox1.setMaximumWidth(75)
        self.button1 = QtGui.QPushButton("Shift")
        self.button1.setStyleSheet("background-color:rgb(59,248,130); 
color: black")
        self.line1 = QtGui.QFrame()
        self.line1.setFrameShape(QtGui.QFrame.HLine)
        self.cropLbl = QtGui.QLabel("Crop your time line to the last 
keyframe of the selected object.")
        self.cropBtn = QtGui.QPushButton("Crop")
        self.cropBtn.setStyleSheet("background-color:rgb(59,248,130); 
color: black")
        
        #Tab2
        self.procAnimsLbl1 = QtGui.QLabel("Import and export Anims")
        self.pathBar = QtGui.QLineEdit()
        self.browseBtn = QtGui.QPushButton("...")
        self.browseBtn.setStyleSheet("background-color:rgb(59,248,130); 
color: black")
        
        #Tab3
        self.testLbl = QtGui.QLabel("Test")
        
        #===================================================
        #Layouts
        #===================================================     
        
        #Tab1 H Layout1
        horizontalLayout1 = QtGui.QHBoxLayout()
        horizontalLayout1.addWidget(self.label1)
        horizontalLayout1.addWidget(self.spinBox1)
                
        #Tab 1 Master layout
        tab1MasterLayout = QtGui.QVBoxLayout(self.tab1)
        tab1MasterLayout.addWidget(self.shiftLbl)
        tab1MasterLayout.addLayout(horizontalLayout1)
        tab1MasterLayout.addWidget(self.button1)
        tab1MasterLayout.addWidget(self.line1)
        tab1MasterLayout.addWidget(self.cropLbl)
        tab1MasterLayout.addWidget(self.cropBtn)
        
        #Tab 2 H Layout
        tab2HLayout = QtGui.QHBoxLayout()
        tab2HLayout.addWidget(self.procAnimsLbl1)
        
        #Tab 2 Master layout
        tab2MasterLayout = QtGui.QVBoxLayout(self.tab2)
        tab2MasterLayout.addWidget(self.procAnimsLbl1) 
#-----------------------This 
widget is too low!


        #Tab 3 Master layout
        tab3MasterLayout = QtGui.QVBoxLayout(self.tab3)
        tab3MasterLayout.addWidget(self.testLbl) 
#------------------------------So 
is this one!
        
        #Creates and assigns objects to mainLayout
        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(self.tab_widget)
        self.setLayout(mainLayout)
        
    #===================================================
    #Create connections
    #===================================================
    
    def create_connections(self):
        pass 
    
    
    #===================================================
    #Functions
    #=================================================== 
    
    def shift_keys(self):
        pass
        
    def keyframe_crop(self):
        pass
    
    def import_anims(self):
        pass
        
    def file_browse(self):
        pass
    
#===================================================
#Shows the window
#===================================================        

if __name__ == "__main__":


    try:
        ui.close()
    except:
        pass
        
    ui = MyWindow()
    ui.show()
      

  

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/7f9a989f-b65c-44a9-8bcc-5f6679be0e64%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to