QTreeView
その内容を自動的にサイズ変更しようとしています。これが私の設定です:うまく機能する「スマートな」ツール ヒントを作成しようQWidget
とQt.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 回目ですが、それが偶然かどうかはわかりません)、このコードを使用すると、ビューのサイズが正しく変更されます (つまり、すべてのコンテンツが収まり、スクロール バー) が表示されますが、スクロール バーは消えず、最後の行の下の空きスペースにスクロールできます。