5

QTreeViewその内容を自動的にサイズ変更しようとしています。これが私の設定です:うまく機能する「スマートな」ツール ヒントを作成しようQWidgetQt.Tool | Qt.FramelessWindowHintしています。WindowFlagsいくつかのボタン (サイズは一定) とQTreeView. QTreeViewこれで、のモデルに線が追加されるたびに、QTreeViewは自動的にサイズを大きくして、垂直スクロール バーを回避する必要があります。

QSizePolicy.Expandingツール ヒント ウィジェットと の両方を設定してもQTreeView何も変わりませんでした。追加のフラグか何かが欠落している可能性があります。

また、次のブルートフォース方式も試しました。

class ToolTip:
    def __init__(self):
        ...
        self.itemView.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel)
        self.itemView.verticalScrollBar().rangeChanged.connect(self.resizeViewVertically)

    def resizeViewVertically(self, min, max):
        self.resize(self.width(), self.height() + max)

ほとんどの場合は機能しますが、常に機能するとは限りません。時々 (正確には 2 回目ですが、それが偶然かどうかはわかりません)、このコードを使用すると、ビューのサイズが正しく変更されます (つまり、すべてのコンテンツが収まり、スクロール バー) が表示されますが、スクロール バーは消えず、最後の行の下の空きスペースにスクロールできます。

4

1 に答える 1

0

この項目がどのように機能するかを参照することをお勧めします: http://ftp.ics.uci.edu/pub/centos0/ics-custom-build/BUILD/PyQt-x11-gpl-4.7.2/examples/layouts/flowlayout.パイ

何が必要かについてのヒントが得られるかもしれません。一時的にスクロールウィンドウにドロップできるレイアウトであり、メインウィンドウのサイズが変更されると、内部のすべてのウィジェットが収まるように並べ替えられます

于 2014-09-26T19:24:24.370 に答える