7

私はこれをウェブ上で見つけられませんでした...

opaqueResizeQSplitterのこのプロパティ(ドキュメントを参照)は何の略ですか?

ありがとう。

4

1 に答える 1

11

あなたがここで何を求めているのかよくわかりません。それはすべてドキュメントにあります。

QSplitterは、デフォルトで子のサイズを動的に変更します。サイズ変更操作の最後にのみQSplitterで子のサイズを変更する場合は、setOpaqueResize(false)を呼び出します。

つまり、スプリッターを設定setOpaqueResize(false)した場合、アプリケーションを起動し、スプリッターをプルして、保持しているウィジェットのサイズを変更しようとすると、スプリッターを解放するまで実際にはウィジェットのサイズが変更されません。一方、設定されてtrueいる場合は、スプリッターハンドルをドラッグしているときにウィジェットのサイズを変更しようとします。

たとえば、カスタムウィジェットの描画に時間がかかる場合は、サイズ変更が非常に遅くなるため、この機能をオフにすると便利です。

しかし、あなたの質問に答えるために、プロパティ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()

これが物事を少し明確にすることを願っています。

于 2011-04-07T10:17:13.253 に答える