首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQt QSplitter setSizes用法

PyQt QSplitter setSizes用法
EN

Stack Overflow用户
提问于 2015-04-09 11:51:45
回答 1查看 8.6K关注 0票数 4

我正在使用一个QSplitter,并希望设置拆分器中窗格的初始相对大小,例如在1: 10的比例中。然而,无论我把窗口设置为什么大小,这个比率永远不会小于76比100。有什么想法吗?

代码语言:javascript
复制
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QScrollArea

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):      
        hbox = QtGui.QHBoxLayout(self)
        first = QtGui.QFrame(self)
        first.setFrameShape(QtGui.QFrame.StyledPanel)
        scrollAreaLeft = QScrollArea()  
        scrollAreaLeft.setWidgetResizable(True)
        scrollAreaLeft.setWidget(first)
        second = QtGui.QFrame(self)
        second.setFrameShape(QtGui.QFrame.StyledPanel)
        scrollAreaRight = QScrollArea()  
        scrollAreaRight.setWidgetResizable(True)
        scrollAreaRight.setWidget(second)
        splitter = QtGui.QSplitter(QtCore.Qt.Horizontal)
        splitter.addWidget(scrollAreaLeft)
        splitter.addWidget(scrollAreaRight)
        splitter.setSizes([10, 100])
        hbox.addWidget(splitter)
        self.setLayout(hbox)
        self.setGeometry(600, 600, 600, 600)
        self.setWindowTitle('QtGui.QSplitter')
        self.show()
        print ("scrollAreaLeft width: "+str(scrollAreaLeft.width()))
        print ("scrollAreaRight width: "+str(scrollAreaRight.width()))

def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()    
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-09 12:06:54

与其使用setSizes(),不如使用setStretchfactor(),如下所示:

代码语言:javascript
复制
splitter.setStretchFactor(1, 10)

setSizes()方法是绝对非相对的,它将大小设置为实际像素大小-因此,为什么试图将小部件的大小设置为10个像素无效。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29537762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档