Hi I am trying to create a pyqt4 based pose library in maya.

I have a function that adds buttons to a grid layout inside a scroll
area, as the buttons 
expand outside the area i want the vertical scroll bar to appear.

If I preview the UI in qt designer with nothing in the grid the scroll
bars appear as expected as I re-size the window.
In Maya they don't and as I add buttons and the grid layout expands
outside of the scroll area they still don't.

Any help or examples of using grid layouts in scroll areas would be
great.

Attached is the ui code and my function for adding buttons is:


def addNewBtn(self):
        btnVar = "self.BtnTest%d"%self.BtnNum
        exec("%s = QtGui.QPushButton('BtnTest%d')"%(btnVar,self.BtnNum))
        exec("%s.setGeometry(QtCore.QRect(-1,-1,100,120))"%(btnVar))
        sizePolicy =
QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
        exec("sizePolicy.setHeightForWidth(%
s.sizePolicy().hasHeightForWidth())"%(btnVar))
        exec("%s.setSizePolicy(sizePolicy)"%(btnVar))
        exec("%s.setMinimumSize(QtCore.QSize(100,120))"%(btnVar))
        
        position = (0,0)
        index = self.posList.index(position)
        
        self.buttons.insert(index,btnVar)
        self.setButtons()
        #print self.buttons
        #print self.posList
        
        exec("self.poseGridLO.addWidget(%s,%d,%d )"%
(btnVar,position[0],position[1]))
        #print self.buttons
        self.BtnNum+=1


Thanks,
Nathan



- --------------------------------------------------------------------
http://www.aardman.com

______________________________________________________________________
This message has been checked for all known viruses by the MessageLabs
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '/local/UIStuff/PoseLibraryUI.ui'
#
# Created: Thu May 21 16:03:07 2009
#      by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1501,970)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        self.centralwidget = QtGui.QWidget(MainWindow)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(100)
        sizePolicy.setVerticalStretch(100)
        sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
        self.centralwidget.setSizePolicy(sizePolicy)
        palette = QtGui.QPalette()
        self.centralwidget.setPalette(palette)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.centralwidget)
        self.horizontalLayout_3.setSpacing(10)
        self.horizontalLayout_3.setMargin(10)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setSpacing(10)
        self.horizontalLayout.setSizeConstraint(QtGui.QLayout.SetNoConstraint)
        self.horizontalLayout.setMargin(10)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.frame = QtGui.QFrame(self.centralwidget)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
        self.frame.setSizePolicy(sizePolicy)
        palette = QtGui.QPalette()
        self.frame.setPalette(palette)
        self.frame.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.frame)
        self.horizontalLayout_2.setSpacing(10)
        self.horizontalLayout_2.setSizeConstraint(QtGui.QLayout.SetNoConstraint)
        self.horizontalLayout_2.setMargin(10)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.poseScrollArea = QtGui.QScrollArea(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.poseScrollArea.sizePolicy().hasHeightForWidth())
        self.poseScrollArea.setSizePolicy(sizePolicy)
        self.poseScrollArea.setMinimumSize(QtCore.QSize(600,800))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255,255,255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Base,brush)
        brush = QtGui.QBrush(QtGui.QColor(200,200,200))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active,QtGui.QPalette.Window,brush)
        brush = QtGui.QBrush(QtGui.QColor(255,255,255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Base,brush)
        brush = QtGui.QBrush(QtGui.QColor(200,200,200))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive,QtGui.QPalette.Window,brush)
        brush = QtGui.QBrush(QtGui.QColor(200,200,200))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Base,brush)
        brush = QtGui.QBrush(QtGui.QColor(200,200,200))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled,QtGui.QPalette.Window,brush)
        self.poseScrollArea.setPalette(palette)
        self.poseScrollArea.setFrameShape(QtGui.QFrame.StyledPanel)
        self.poseScrollArea.setFrameShadow(QtGui.QFrame.Sunken)
        self.poseScrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
        self.poseScrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
        self.poseScrollArea.setWidgetResizable(True)
        self.poseScrollArea.setObjectName("poseScrollArea")
        self.poseScrollAreaWidgetContents = QtGui.QWidget(self.poseScrollArea)
        self.poseScrollAreaWidgetContents.setGeometry(QtCore.QRect(0,0,1000,850))
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.poseScrollAreaWidgetContents.sizePolicy().hasHeightForWidth())
        self.poseScrollAreaWidgetContents.setSizePolicy(sizePolicy)
        self.poseScrollAreaWidgetContents.setMinimumSize(QtCore.QSize(1000,850))
        self.poseScrollAreaWidgetContents.setMaximumSize(QtCore.QSize(100,120))
        palette = QtGui.QPalette()
        self.poseScrollAreaWidgetContents.setPalette(palette)
        self.poseScrollAreaWidgetContents.setFocusPolicy(QtCore.Qt.WheelFocus)
        self.poseScrollAreaWidgetContents.setObjectName("poseScrollAreaWidgetContents")
        self.poseGridLO = QtGui.QGridLayout(self.poseScrollAreaWidgetContents)
        self.poseGridLO.setSizeConstraint(QtGui.QLayout.SetFixedSize)
        self.poseGridLO.setSpacing(10)
        self.poseGridLO.setContentsMargins(10,10,30,10)
        self.poseGridLO.setObjectName("poseGridLO")
        self.horizontalLayout_2.addWidget(self.poseScrollArea)
        self.frame_2 = QtGui.QFrame(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame_2.sizePolicy().hasHeightForWidth())
        self.frame_2.setSizePolicy(sizePolicy)
        self.frame_2.setMinimumSize(QtCore.QSize(200,851))
        palette = QtGui.QPalette()
        self.frame_2.setPalette(palette)
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Sunken)
        self.frame_2.setObjectName("frame_2")
        self.addBtn = QtGui.QPushButton(self.frame_2)
        self.addBtn.setGeometry(QtCore.QRect(70,280,100,120))
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(100)
        sizePolicy.setVerticalStretch(100)
        sizePolicy.setHeightForWidth(self.addBtn.sizePolicy().hasHeightForWidth())
        self.addBtn.setSizePolicy(sizePolicy)
        self.addBtn.setMinimumSize(QtCore.QSize(100,120))
        self.addBtn.setObjectName("addBtn")
        self.addColBtn = QtGui.QPushButton(self.frame_2)
        self.addColBtn.setGeometry(QtCore.QRect(80,100,83,29))
        self.addColBtn.setObjectName("addColBtn")
        self.autoBtn = QtGui.QPushButton(self.frame_2)
        self.autoBtn.setGeometry(QtCore.QRect(70,170,83,29))
        self.autoBtn.setObjectName("autoBtn")
        self.removeBtn = QtGui.QPushButton(self.frame_2)
        self.removeBtn.setGeometry(QtCore.QRect(70,230,83,29))
        self.removeBtn.setObjectName("removeBtn")
        self.horizontalLayout_2.addWidget(self.frame_2)
        self.horizontalLayout.addWidget(self.frame)
        self.horizontalLayout_3.addLayout(self.horizontalLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0,0,1501,31))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "PoseLibrary - v0.1", None, QtGui.QApplication.UnicodeUTF8))
        self.addBtn.setText(QtGui.QApplication.translate("MainWindow", "add", None, QtGui.QApplication.UnicodeUTF8))
        self.addColBtn.setText(QtGui.QApplication.translate("MainWindow", "addCol", None, QtGui.QApplication.UnicodeUTF8))
        self.autoBtn.setText(QtGui.QApplication.translate("MainWindow", "auto", None, QtGui.QApplication.UnicodeUTF8))
        self.removeBtn.setText(QtGui.QApplication.translate("MainWindow", "remove", None, QtGui.QApplication.UnicodeUTF8))

_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to