PySide中QtGui.QFrame的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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对象中添加控件。

以上是关于PySide中QtGui.QFrame的用法的主要内容,如果未能解决你的问题,请参考以下文章

Pyside开篇杂记

PySide2兼容PySide1的补丁代码

具有内置多处理功能的 PySide2

pyqt pyside QAction 代码中触发

Pyside2.QtCore.QObject 不是 MyTableWidget 的直接基类——PySide2 出错

如何移动按钮 Pyside2