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对象中添加控件。

  • 相关阅读:
    cxGrid 锁定列
    精选网站
    Delphi XE10 dxLayoutControl 控件应用指南
    合并当前工作簿下的所有工作表
    【集中工作薄】 当前文件夹中所有Excel文件中 多个工作簿的第一个工作表 复制到工作簿中
    CxGrid如何实现导出Excel 功能
    Google Material Design的图标字体使用教程
    Mui沉浸模式以及状态栏颜色改变
    移动端弹性效果
    JS中的“!!”
  • 原文地址:https://www.cnblogs.com/hksac/p/5502667.html
Copyright © 2011-2022 走看看