問題タブ [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.
c++ - QLabel 画像をスクロールできません
私は、QLabel
私が設定したこの画像を取得することに取り組んでおり、それは完全に正常に機能しています。スクロールするだけです。セットアップは理解できQScrollArea
ますが、これは の一般的な使用法ではありませんQScrollArea
。
mainwindow.cpp
の横にスクロール領域を設定する必要がありQLabel
ます。これは、私が設定した領域であり、QLabel
スクロールできるように設定したい場所です。
QScrollArea
プログラム全体を完全に制御し、すべての画像を表示することなく、作業を開始する方法がわかりません。
画像をスクロール可能にする必要があるだけです。コード例を教えてください。すべてを把握しやすくなります。よろしくお願いいたします。
PS私はスクロールがメインのウィジェットの上にあるのではなくQLabel
、画像が入ったウィジェットだけにしたいです。
c++ - Qt QGridLayoutは、アイテムを自動的に中央に配置(移動)します。
フォームにQHBoxLayout
3つのレイアウトが追加されています。2つ目は私の質問に関する項目です。
QVBoxLayout
メインレイアウトの2番目のペイン( )にがありQHBoxLayout
ます。これに。QVBoxLayout
がQScrollArea
追加されていaddWidget
ます。
これは、呼び出された「scrollContents」QScrollArea
の親であり、これには。が含まれます。QWidget
QGridLayout
QGridLayout
これに、高さが固定されたカスタム作成のウィジェットを追加しています。今のところこれを考えることができ100px
ます。
QGridLayout
全高がフォーム自体よりも低いアイテムがある場合は、これらのウィジェットを同じ量のスペースで垂直方向に中央揃えにします。
ウィジェットが1つしかない場合は、真ん中に表示されます。しかし、私はそれらを上から下にリストしてほしい。
例:[###は、が付いている領域QScrollArea
をQWidget
表します QGridLayout
。
基本的に:9つの「行」のスペースがある場合、1つのアイテムを追加すると、5番目の位置の中央に表示されます。9個以上ある場合は、表示されます。8個以下の場合は、それらの間のスペースが拡張され、すべてが中央に配置されます。
どうすればこれを解決できますか?
ありがとうございました。
c++ - Qtでは、背景画像の設定にsetStyleSheetまたはQPalette(Background、image)を使用する必要がありますか?
私はQtで開発するのはかなり新しいです。私はこの1週間、かなり多くのことを読んでいて、スタイルシートを使用して背景画像を設定すると「速度が低下する」問題が発生することがあると聞いています。
私は天才であり(皮肉)、QPalette.setBrush()メソッドを使用して背景を設定する方法を考え出しました。
私の質問は:
- QWidget、QScrollAreaなどに背景画像を設定する場合、最高のパフォーマンス(および重要な場合は低メモリフットプリント)を実現するには、どちらの方法を使用する必要がありますか。
それが役に立ったら、私が使用している画像が繰り返されます。
qt - ウィジェットをオーバーフローさせてスクロールバーをQtに表示するにはどうすればよいですか?
私のウィジェットの構造は次のとおりです。
QWidgetは、境界線が丸いパネルになるようにカスタマイズされています。
余白のある境界線の内側にスクロールバーのある領域を含めるために、これを内側に配置します。
QVBoxLayoutを使用したQScrollArea(コンテンツを垂直に追加)
次に、その中に一連の:を追加します。
間隔が0のタイトルのQGroupBox、およびQFormLayout
フォームレイアウトが思ったように機能しません。内部のウィジェットは、ラベルとスピンボックスであり、すべてです。
これが画像です:
初め。それらは中央に配置されていません。どうしてか分かりません。
2番。私が言ったように、それらはすべて同じ固定サイズが与えられていますが、とにかく積み重ねられており、押しつぶされていないので、お互いを隠しています。なぜそれはそのサイズのままではなく、親のQScrollAreaはスクロールバーを外側に表示しますか?それが私が欲しいものです。
中身をつぶしたり伸ばしたりしたくない。私は彼らが一番上にいることを望みます。画面が非常に大きい場合、パネルは長くなりますが、中身は常に同じサイズで上部に表示されます。
誰かがコードを要求したので、ここにコピーしますが、コードは本当に大きいです...もっと混乱していると思います。しかし、まあ、意味のない行を削除してください。そのボックスに表示される部分は次のとおりです。
今、すべてのスタイルシートが来ます:
qt - QtsureVisible()がQScrollAreaで機能しない
2列あります。列の1つはたくさんのQWidgetsで埋められています。ウィジェットを列にドロップすると、次のメソッドが呼び出されます。
最初の列の一番下にいて、次の列にウィジェットをドラッグしたとき。スクロールエリアは下に適切にスクロールするので、ドロップした場所を確認できます。
しかし、ウィジェットを最初の列に戻すと、スクロールしますが、完全に一番下まではスクロールしません。その約150px(編集:150pxは真実ではありません。ウィジェットの約5pxしか表示されません)
誰か助けてもらえますか?
編集:
私のレイアウトを知っておくといいかもしれません。
が付いたメインウィンドウがありQScrollArea
ます。scrollAreaにはがQWidget
呼び出されscrollAreaWidgetContents
、QHBoxLayoutがあります。ウィジェットには5つの列があります。そして、これらにはドラッグアンドドロップウィジェット用のQVBoxLayoutがあります。
JEEZ別の編集:
私はそれが最後のアイテムでのみうまくいかないことに気づきます。
私はただ編集を続けます
スクロールバーが完全に下がっていないことは、今では明らかです。
このコードも同じ動作を示しています。このスレッドをどうすればよいですか?そして、私は新しいものを作成する必要がありますか?
qt - QT で qscrollbar コンテキスト メニューを非表示にする方法
右クリックしたときに表示されるスクロールバーのコンテキスト メニューを非表示にするにはどうすればよいですか?
resize - QTreeView をコンテンツに合わせて自動的にサイズ変更する
QTreeView
その内容を自動的にサイズ変更しようとしています。これが私の設定です:うまく機能する「スマートな」ツール ヒントを作成しようQWidget
とQt.Tool | Qt.FramelessWindowHint
しています。WindowFlags
いくつかのボタン (サイズは一定) とQTreeView
. QTreeView
これで、のモデルに線が追加されるたびに、QTreeView
は自動的にサイズを大きくして、垂直スクロール バーを回避する必要があります。
QSizePolicy.Expanding
ツール ヒント ウィジェットと の両方を設定してもQTreeView
何も変わりませんでした。追加のフラグか何かが欠落している可能性があります。
また、次のブルートフォース方式も試しました。
ほとんどの場合は機能しますが、常に機能するとは限りません。時々 (正確には 2 回目ですが、それが偶然かどうかはわかりません)、このコードを使用すると、ビューのサイズが正しく変更されます (つまり、すべてのコンテンツが収まり、スクロール バー) が表示されますが、スクロール バーは消えず、最後の行の下の空きスペースにスクロールできます。
scrollbar - 垂直スペーサーを使用してウィンドウ内の QTableView を集中化する
テーブルを (垂直方向に) 中央に配置するために、上下に QSpacerItems を含む QTableView を含むメイン ウィンドウ (固定サイズ) を作成しようとしています。
(申し訳ありませんが、明らかに画像を投稿できません)。
QVBoxLayout があり、その中に垂直スペーサー、QTableView、および別の垂直スペーサーがあります。3 つのウィジェットすべてで QSizePolicy のすべての組み合わせを試しましたが、スクロールバーなしでテーブルを表示することはできません。(項目の数がメイン ウィンドウのサイズを超える場合に必要になるため、Qt.ScrollBarAlwaysOff は使用できません)。したがって、垂直スペーサーがビューとメインウィンドウの間の十分なスペースを吸収しているにもかかわらず、QTableView の垂直スクロールバーが表示されます。
行を一元化するために、垂直スペーサーがテーブル ウィジェットの上下に必要な最小限のスペースを占め、テーブル ウィジェットがスクロールバーなしでできるだけ多くの行を表示するようにします。
c++ - QTabWidget の QScrollBar + QScrollAera
私の質問は簡単です。QScrollArea に QScrollBar を設定するにはどうすればよいですか。私は多くのことをテストしましたが、何も機能しません... QScrollArea を QTabWidget に設定するのは問題でしょうか? コードは次のとおりです。
実際、QScrollArea (8 ~ 9 行の写真など) が作成されたタブに写真を追加しますが、表示されるのは 5 つだけで、残りは定義されたゾーンの外にある下部にあるため非表示になります。
何か案が ?ありがとう。