zoukankan      html  css  js  c++  java
  • PySide中QtGui.QFrame的用法

    最近一位同事的出现让我重新正视PySide中designer这个工具的强大之处,通过QtGui.QObject.setGeometry(QtCore.QRect())这个最简单直接的方法可以完成很多复杂的界面绘制,从而摆脱QtGui.QGridLayout(),QVBoxLayout(),QHBoxLayout()三个Layout()对象的束缚。

    这次matchmove组需要一个工具能够将maya工程中所选模型输出为abc文件,以该abc文件为基础自动生成一个nuke工程,继而将该nuke工程提交本地渲染或者deadline农场进行渲染。所有功能集成在一个工具中,就需要考虑到界面的整洁有序了,我决定使用QtGui.QFrame对象来划分UI区域,最终效果如图:

     

    黑色方框将界面划分为三个区域,看着不至于凌乱。

    附上一段Logo部分的代码如下:

    logoLabel      = QtGui.QLabel("<font size='12' color='gray'><B>RENDER WIREFRAME TOOL</B></font>")
    
    logolayout     = QtGui.QVBoxLayout()
    
    logolayout.addWidget(logoLabel)
    
    self.frame1 = QtGui.QFrame(self)
    
    self.frame1.setLayout(logolayout)
    
    self.frame1.setGeometry(QtCore.QRect(5, 5, 390, 100))
    
    self.frame1.setFrameShape(QtGui.QFrame.StyledPanel)
    
    self.frame1.setFrameShadow(QtGui.QFrame.Raised)

    QtGui.QFrame继承自widgets类,意味着除了

    def drawFrame (arg__1)
    
    def frameRect ()
    
    def frameShadow ()
    
    def frameShape ()
    
    def frameStyle ()
    
    def frameWidth ()
    
    def lineWidth ()
    
    def midLineWidth ()
    
    def setFrameRect (arg__1)
    
    def setFrameShadow (arg__1)
    
    def setFrameShape (arg__1)
    
    def setFrameStyle (arg__1)
    
    def setLineWidth (arg__1)
    
    def setMidLineWidth (arg__1)

    这一系列自有方法外,QtGui.QFrame也可以使用widgets类的方法。在代码中,我创建了一个logolayout,将控件添加到logolayout中,再通过setLayout这个属于widgets的方法将logolayout传递给QFrame对象,通过这种方式就可以很轻松的在QFrame对象中添加控件。

  • 相关阅读:
    JavaScript 操作CSS
    源码搭建LAMP服务器
    Modified 2 color sort
    python的网络库
    找出有序整数数组中下标与值相同的所有元素
    sql 查看Oralce 数据库连接状态
    oracle 快闪 sql
    Sql server dblink
    昆山桶装水/免费送货上门/
    C# Tostring() 格式大全 [转]
  • 原文地址:https://www.cnblogs.com/hksac/p/5502667.html
Copyright © 2011-2022 走看看