問題タブ [qlayout]

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 投票する
1 に答える
1196 参照

c++ - 整列時に QVideoWidget に何も表示されない

奇妙な問題があり、助けが必要です。状況は静かで簡単です: QMediaPlayerQVideoWidget、およびいくつかのレイアウト (例: QVboxLayout ; まあ、それは実際には問題ではありません) があります。問題は、配置を指定してQVideoWidgetを追加したときです。ビデオが表示されず、ウィジェットの場所しかなく、ビデオのない空白の領域があります。また、アライメントを指定せずに追加しても問題ありません。コード例は次のとおりです。

Widget.h:

助言がありますか?前もって感謝します。

更新:

興味深いことが見つかりました -中央揃えが「オフ」のビデオウィジェットの「qDebugging」 geometry()は次のようになります: QRect(11,11 579x459) しかし、中央に揃えようとすると、次のようになります: QRect( 300,240 0x0)

左揃え: QRect(11,11 0x456)

この問題が発生する理由と、この問題を解決する正しい方法はわかりませんが、QVideoWidgetQGraphicsScene-QGraphicsView-QGraphicsVideoItemチェーンで変更しても繰り返されます。

0 投票する
0 に答える
683 参照

c++ - QGraphicsItem のレイアウト モデルはありますか

残念ながら、これに関する文書化された情報はありません。QLayoutウィジェット内のウィジェットではなく、QGraphicsItem内部QGraphicsItemの s のようなレイアウト クラスが必要です。私は持っている:

簡単に言えば、私のGraphicsViewオブジェクトには、別の QGraphicsItem オブジェクト内に QGraphicsItem オブジェクトがあるシーンがあります

QGraphicsView -> QGraphicsScene -> QGraphicsItem (GraphicsItem) -> 4x QGraphicsItem (AnotherGraphicsItem)

問題はAnotherGraphicsItem、外側のGraphicsItemオブジェクトで何らかの方法で整列する必要があることです。私は使用しましたが、使用するつもりのないQGraphicsLayout内部で使用する必要があるか、 (メソッドがある)でのみ機能するようです。QGraphicsWidgetQGraphicsViewsetLayout()

いくつかの良い例も歓迎します。

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

qt - QT5.4 レイアウト内のウィジェットの削除と削除

私はQStackedLayoutそれにいくつかを含むを持っていますQWidget。ウィジェットのレイアウトQVBoxLayoutも少ないQPushButtonです。私がやりたかったのは、内部のすべてのウィジェットをQStackedLayout削除してから、ウィジェットとレイアウトを削除することですが、後で別のウィジェットに配置するため、すべてのボタンを削除しないでください。

これが私のコードです:

アプリケーションが行でクラッシュしますdelete w;。そして、delete行を削除すると、アプリケーションは正常に動作します。

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

c++ - QScrollArea vertical sizePolicy - コンテンツを最大の高さまで合わせる

QScrollArea可能な限り最小のスペースを最大の高さまで確保するのは本当に大変でした。

私の GUI モデルは次のとおりです。 AQScrollAreaには、 class のウィジェットが取り込まれた垂直レイアウトが含まれていますTableRow。私はこのクラスTableRowが可能な限り最小限の高さを取ることを望みます. 上部には常に表示されるウィジェットがあり、下部には表示をQScrollArea切り替えることができるラベルが含まれています。ラベルは、0 文字または無限の長さ (ハードウェアの制限は別として) のメモ用です。

クラスのラベルTableRowの場合、垂直方向sizePolicyを に設定するFixedと、すべてのコンテンツに合わせて実際に必要な量が正確に使用されることがわかりました ( Qt レイアウト、ウィジェットのサイズ変更後に最小にサイズ変更 を参照)。ただし、これは では機能しないようQScrollAreaです。sizePolicy実際、私が試したものはすべてQScrollArea、固定された高さに保たれています。を除いてIgnoreQScrollAreaその内容に関係なく、 は高さ 0 になります。

この問題の簡略化されたバージョンを生成するgit ブランチを作成しました。

固定の垂直方向の sizePolicy を適用した結果は次のとおりです。 固定縦サイズポリシーの結果

このテスト ケースに期待すること:

  • 最初のウィジェットの高さはほぼ 30px (上のウィジェットの高さ) で、QLabelQScrollArea
  • 2 番目のウィジェットの高さは 130 ピクセル (最大高さ 100 ピクセル) よりも短くする必要がありますが、QScrollAreaスクロールせずにラベルを表示するのに十分な大きさにする必要があります
  • sizePolicy3 番目のウィジェットの高さは 130px で、スクロールバーが表示されます (この部分は、垂直方向が に設定されている場合を除いて、私が試したすべてのケースで正しいですIgnored)

QScrollArea の高さがその子ウィジェットに依存する理由は明らかではないため、これを機能させるにはいくつかのことをオーバーライドする必要があるかもしれないことを理解しています (これがおそらく、これを簡単にするように設計されていないか、少なくともそうではなかったように)。

しかし、私がしようとしているケースは十分に一般的であり、現在のアプローチは正当化できると思います。個々のウィジェットが最大の高さに達した後にスクロールする別の/より良い方法がある場合、私が期待している3つの条件を満たしていれば、答えとしてそれを受け入れます。

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

c++ - Qt ウィジェット (QPushButton、QTextEdit、QLabel) をプログラムで Qt Designer レイアウトに追加する方法は?

ウィジェット (プッシュ ボタン、ラベルなど) を Qt Designer で生成された中央のウィジェット レイアウトに動的に追加することは可能ですか? どうすればそれができますか?

ありがとうございました!

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

qt - レイアウトなしの QWidget を QStackedWidget インレイ ギャップに追加する

複数の QWidget() オブジェクトを追加する QStackedWidget があります。各 QWidget には独自のレイアウトがあります。何らかの理由で、QWidget を QStacked ウィジェットに追加するときに、位置「0,0」と言うように追加しません... QStackedWidget の各エッジから常に 3 または 4 ピクセルはめ込むようです。例については画像を参照してください...ギャップが見やすいように、QStackedWidget の背景を黒にしました。

問題は、このギャップを解消し、QWidget を QStackedWidget と完全に一致させるにはどうすればよいかということです。

ここに画像の説明を入力

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

qt - レイアウト マネージャーを使用せずに Qt アプリケーションのサイズを変更する

Qt で作成した GUI のサイズがユーザーのウィンドウに合わせて変更されるようにしようとしています。これは伝統的にレイアウトマネージャーを使用して行われていることは知っていますが、私のニーズに合ったレイアウトマネージャーはありません。すべてのマネージャーは不均衡なウィジェットを作成しているようです。私のウィジェットと画面の特定の割合を作成する方法はありますか? ウィジェットの現在の相対的な位置を維持し、画面のサイズが同じ係数でサイズ変更されるようにサイズを変更したいだけです。

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

c++ - QLayoutで特定のタイプのウィジェットを見つける方法は?

私はQRadioButtonこの方法を見つけることができます:

しかし、私は要素を反復処理するこの方法が好きではなく、foreach構造を使用したいと考えています。私の最初の試みは失敗します:

問題は、ui->verticalLayout->findChildren<QRadioButton*>()ゼロ要素を返すことです。また、 を含む要素は返されませんfindChildren<QObject*>()。誰かがこの動作を説明できますか?

注:この質問のタイトルは私のものとほぼ同じですが、python Qtに関連しており、私にとって役立つ情報は含まれていません。

子供対要素?

実験的に、ui->verticalLayout->children().count()は 0 をui->verticalLayout->count()返し、 as は にある要素の数を返すと考えましたverticalLayout。これは、 と が同じリストにアクセスしないことを意味しitemAt(i)ますfindChild<QRadioButton*>()。Qtのドキュメントを見てchildren()も役に立ちませんでした。

誰かが Qt の子の親の概念に関する良い資料を教えてくれますか? これは、私が達成しようとしているネストされたオブジェクトへのアクセスとは何の関係もないと仮定しています。

編集

Kuba Ober が示唆したように、この質問への回答には別のトピックに関する貴重な情報が含まれていますが、彼の回答はレイアウトの子に関する私の質問を明確にしています。したがって、これは重複した質問ではありません。