我在网上没找到这个...

QSplitter ( see doc ) 上的这个 opaqueResize 属性代表什么?

谢谢。

最佳答案

我不太确定你在这里问什么。这一切都在 docs 中。



这意味着如果您在拆分器上设置 setOpaqueResize(false),请启动您的应用程序并尝试拉动拆分器以调整它所持有的小部件的大小,直到您释放拆分器,它才会实际调整小部件的大小。另一方面,如果它设置为 true,它会在您拖动拆分器 handle 时尝试调整小部件的大小。

例如,如果您的自定义小部件需要很长时间来绘制,则关闭此功能会很有用,因为它会使调整大小变得非常缓慢。

但是要回答您的问题,属性 opaqueResize 保存调整大小是否不透明,即它是否会在拖动拆分器时调整小部件的大小。

示例:

这是一个您可以尝试的 PyQt 示例(我在 Python 中有示例,但在 C++ 中应该可以正常工作):

from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)
        top = QtGui.QLabel('test', self)
        bottom = QtGui.QPushButton('test', self)
        splitter = QtGui.QSplitter(QtCore.Qt.Vertical)
        # Try changing from False to True
        splitter.setOpaqueResize(False)
        splitter.addWidget(top)
        splitter.addWidget(bottom)
        hbox = QtGui.QHBoxLayout(self)
        hbox.addWidget(splitter)
        self.setLayout(hbox)
        self.setGeometry(250, 200, 350, 250)

def main():
    app = QtGui.QApplication([])
    ex = Example()
    ex.show()
    app.exec_()

if __name__ == '__main__':
    main()

希望这能让事情更清楚一些。

关于Qt 对 QSplitter 意义的 opaqueresize 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5579025/

10-12 16:40