問題タブ [qscrollarea]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3862 参照

python - QScrollArea に固定ヘッダーを追加するには?

現在、次のように定義された QScrollArea があります。

これは、他のレイアウト/ウィジェット内に非常にうまくネストされ、期待どおりにサイズ変更されます.

グリッド列の見出しを提供するために、スクロール領域の真上に配置された別の QGridLayout を使用しています - これは機能しますが、適切にスタイル設定されていても、特にオンデマンド (垂直) スクロールバーが表示または非表示になると、少し奇妙に見えます必要に応じて、ヘッダーがグリッド列に正しく整列しなくなりました。それは私が知っている審美的なことです...しかし、私はちょっとうるさいです;)

他のウィジェットは、他のself.results_grid_layout場所でプログラムによって追加/削除されます。上記の最後の行は、作成されたマージン領域を簡単に使用できると思ったので、最近追加したばかりです。setViewportMargins 状態のドキュメント:

スクロール領域の周囲に余白を設定します。これは、「ロックされた」行と列を持つスプレッドシートなどのアプリケーションに役立ちます。マージンスペースは空白のままです。未使用領域にウィジェットを配置します。

しかし、私は一生、これを実際に達成する方法を考え出すことはできません.GoogleFuが今日私を捨てたか、実際にこれを達成する方法に関する情報/例はほとんどありません.

私の頭は、私が行ったように、スクロールエリアに(他のウィジェットをいくつでも含む)レイアウトによって制御されるウィジェットを1つだけ割り当てることができると言っています。たとえば、グリッドレイアウトの行 0 に QHeaderview を追加すると、ビューポートのマージンの下に表示され、レイアウトの残りの部分と一緒にスクロールしますか? それとも、何かが欠けていて、木を見て木を見ることができないのでしょうか?

私はちょうど Python/Qt を学んでいるので、ヘルプ、ポインター、および/または例 (できれば Python を使用しますが、必須ではありません) をいただければ幸いです。


編集:これまでに与えられたアドバイスに従って(私は思う)、試してみるために次の小さなテストプログラムを思いつきました:

これらの線に沿ったものは、あなたが指摘していた方法ですか? ユーザーがウィンドウのサイズを変更する前の奇妙な初期動作を除いて、すべてが期待どおりに機能します。ウィンドウのサイズが変更されると、すべてが整列して問題ありません。私はおそらくもう一度考えすぎているか、少なくとも何かを見落としています... 何か考えはありますか?

0 投票する
1 に答える
2492 参照

python - pyqt4pythonのscrollareaによって生成されるスクロールバーの値を取得します

以下のコードを使用して、スクロール付きのフレームを作成しました。そして、フレーム内に、ドラッグアンドドロップできる別のウィジェットを作成しました。問題は、垂直スクロールバーが存在し、それを下にスクロールしてからオブジェクトをドラッグアンドドロップすると、オブジェクトが間違ったy座標にドロップする場合です。スクロールバーの値を取得して、それをy座標に追加できますか?または、これを解決する他の方法はありますか?前もって感謝します :)

0 投票する
1 に答える
2233 参照

qt - 子ウィジェットを追加するときにQScrollAreaウィジェットの自動サイズ変更

私は次の構造を持っています:

QLabelは、ランダムなテキストで自動的に生成されます。ラベルに合わせてウィジェットのサイズを自動的に変更するにはどうすればよいですか?現時点では、固定サイズを設定するだけでウィジェットを見ることができます。

解決:

QLabelを作成した後、その幅を保存します。

そして、サイクルの後、ウィジェットに固定幅を設定しました。

ヒントをありがとう@shobi!

0 投票する
1 に答える
325 参照

qt - .ui ファイルから作成された場合、QScrollArea の派生物は空です。

次の簡単な例を検討してください。

エリア.hh

Area.cc

このスクロール領域には、その中にラベルが表示されます。Area オブジェクトを作成して、次のように表示すると、うまくいきます。

ただし、QScrollAreaQt Creator で を追加してAreaクラスに昇格させると、内部には何も表示されず、スクロールバーもありません。ちゃんと見せるにはどうしたらいいですか?

0 投票する
1 に答える
4508 参照

qt - QAbstractScrollArea / QTableViewが水平スクロールしないようにするにはどうすればよいですか?

QTableViewとその中にいくつかのコンテンツがあります。次のような動作horizontalHeader() -> setResizeMode( ResizeToContent )が必要ですが、水平スクロールバーを作成してはなりません。つまり、ビューポートの幅をテーブルより広くしてはなりません。

新しいQHeaderViewを作成しても、仮想メソッドが少ないため、それほど簡単ではありません。

問題を視覚化するための描画

前もって感謝します、

チャーリー

PS:カスタムアイテムデリゲートがあります。これは、長いテキストを「...」で短縮します。sizeHint()としてフルサイズを返しますが、paint()メソッドが小さいサイズを受け取ると(たとえば、resizeMode()== Qt :: Interactiveでシミュレート)、コンテンツをトリミングします。

0 投票する
3 に答える
564 参照

c++ - QGridLayout にあまりにも多くのウィジェットを追加する

デザイナーから作成された UI と、コードからカスタム ウィジェットを追加するQGridLayoutがあります。カスタムウィジェットを1~4個追加するときは問題ないのですが、それ以上入れようとすると重なってしまいます。

説明を完了するための画像を次に示します。

重複なし: http://i45.tinypic.com/wve8o6.png

重複: http://i47.tinypic.com/565py.png

QGridLayout にある種のスクロールを追加する方法を見つけようとしているので、カスタム ウィジェットがそれらの間でオーバーラップせず、それらすべてを操作できます。

QScrollArea を使用しようとしましたが、4 つ以上のウィジェットを追加すると、重なり続けてスクロールが正しく機能しません。

0 投票する
2 に答える
2972 参照

python - QScrollArea の子ウィジェットが表示されているかどうかを調べる方法は?

に配置された にQLabels複数表示しています。QFrameQScrollArea

QScrollAreaでいずれかをQLabels表示するように指示できQScrollArea.ensureWidgetVisible(QLabel)ますが、子ウィジェットが現在表示されているかどうかを確認する方法が見つからないようです。のようなものを期待しますQScrollArea.isWidgetVisible(QWidget)

私は子供自身のメソッドを使ってみQLabel.isVisible()ましQLabelた。これに対する解決策は何ですか?QScrollAreaTrue

0 投票する
1 に答える
550 参照

python - QScrollAreaでのズームが非常に厄介になるのを防ぐにはどうすればよいですか?

私はPyQt4とpython-popplerqt4を使用してPDFリーダーに取り組んでいます。PDFページ(QPixmaps)はQLablesに表示され、QFrameに垂直に配置されます。QFrameはQScrollAreaに配置されます。

ドキュメントのサイズは、QLabelの固定サイズによって決まります。QPixmapはそれに応じて拡大するように設定されており、ページ周辺のQFrameは自然にそのサイズを調整します。

ズームを呼び出すと、ページ(QLabels)のサイズが1つずつ変更されQLabel.setFixedSize()ます。ただし、その効果は期待外れです。ドキュメントのサイズを変更すると、ぎこちなくちらつきます。EvinceまたはMendeleyのズームインは、比較すると非常にスムーズです。

QFrame.hide()スケーリングの前と後の呼び出しがQFrame.show()役立つことを他の場所で読んだことがあります。確かにそれは小さな文書のために行います。ただし、たとえば約700ページのPDFに適用すると、1秒以上空白のQScrollAreaを意味します。良くない。

QScrollAreaでドキュメントを拡大縮小して、スムーズなズーム効果を生成するにはどうすればよいですか?

PS: Poppler.Pagesの画像は、表示されているQLabel受信者に対してのみ描画されます。つまり、700ページのドキュメントのサイズ変更には、多くの画像のサイズ変更は含まれません。実際には、最大で2〜4枚の画像のサイズが変更されます(解像度が高くなるほど、解像度は低くなります)。Documentオブジェクトのサイズ変更は、ほとんどの場合空のQLabelのサイズ変更のみで構成されます。

0 投票する
1 に答える
2664 参照

c++ - QGroupBoxのQScrollArea

次のアーキテクチャを実装しようとしています。

  • QGroupBox-> setLayout
    • QVBoxLayout-> addWidget
      • QScrollArea-> setWidget
        • QWidget-> setLayout
          • QVBoxLayout-> addWidget
            • 私のウィジェット(Mesures)

私が探している結果は、すべてのウィジェットを含むスクロールエリアを備えたグループボックスを持つことです。しかし、これを実装しようとすると、scrollareaには何もありません。

これが私が持っているものです:http://imgur.com/SgQkJ

編集:これは、scrollareaを削除して、ウィジェットをgorupboxhttp://imgur.com/iuTnVに直接置いたときに得られるものです

そしてここに私のコードがあります:

Mesure.h

Mesure.cpp

PanneauMesure.h

PanneauMesure.cpp

Main.cpp