問題タブ [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 に答える
13965 参照

c++ - Qtで複数のUIフォームを切り替える

組み込みデバイスのユーザー インターフェイスを開発しています。約 30 個の UI フォームを作成しました。最初に、データベースをロードし、利用可能な既知の wifi とそれらすべての起動機能に自動的に接続する Welcome フォームがあります。すべてがロードされると、次にロードされるフォームはユーザーログインです

ログインが2番目のUIである場合、これが私が行う方法です

これは、複数の UI を切り替える正しい方法ですか? このソフトウェアは、さまざまなアプリを開くための複数のアイコン ボタンを備えたスマートフォン デバイスのように想像できます。また、各アプリまたはフォルダーには独自の機能があります。メインメニューのホームページなどに戻るためのホームボタンがあります。上記のコードを使用して、さまざまな ui フォームを切り替えましたが、これがその方法であるかどうかはわかりません。私は Qt に非常に慣れていないので、2 週間以内にこのタスクを実行するように求められ、見つけた最も簡単な方法を作成しました。それについてもっと良い方法はありますか?

ヘルプやガイドラインをいただければ幸いです。よりよく理解するためのリンクを教えていただければ、それは素晴らしいことです

ありがとうございました

編集 ここに画像の説明を入力

すべての UI フォームには、ログイン、メイン メニュー、設定 - 電源オプション、Wi-Fi オプション (設定内) に直接アクセスするためのショートカット パネルがあります。1 に示すレイアウト フローは、2、3 および設定と同様です。汚い画像ですみません。双方向の矢印は、前後に切り替えることができることを示しています。単一の矢印は直線的な動きを示します。

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

qt - 動的に追加されたウィジェットでの QScrollArea および QVBoxLayout の問題

QScrollArea 内に含まれる QVBoxLayout にウィジェットを動的に追加すると、奇妙な問題が発生します。ウィジェットを追加すると期待どおりに動作しますが、すべてのウィジェットを削除した後も画面にアーティファクトが残っています。以下のスクリーンショットを参照してください。

ここに画像の説明を入力

以下のコードを参照してください。

ui_mainwindow.h

メインウィンドウ.h

メインウィンドウ.cpp

main.cpp

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

c++ - Qtレイアウトでアイテムを配置する

ここ数日間、私は Qt レイアウト システムに関する特定の問題を解決しようとしています。一般化してみましょう: 2 つの行を持つウィジェットがあります。最初の行には、ツリー ボタン (またはその他のコントロール) があります。それらのレイアウトは写真に示されています: ここに画像の説明を入力

中央のボタンは、使用可能なすべての余分なスペースを使用しています (ウィジェットのサイズが大きくなるにつれて拡大します)。問題は、プログラムで中央のウィジェット(ボタン)のサイズを変更し、レイアウトを維持したいということです。現在の実装では、中央のボタンのサイズを変更すると、次のようになります。

ここに画像の説明を入力

右ボタンを中央ボタンの右側に配置したい(余分なスペースなし)。ウィジェットのサイズを変更すると、位置 1 に戻ります (中央がすべての余分なスペースを取ります) が、これは私が望む効果ではありません。

これが私の現在の実装です:

ノート:

中央と右のウィジェット Qt::AlignLeft を揃えようとしましたが、結果はありません。実際、ウィジェットをレイアウトに残して配置すると、拡張機能が壊れる最小サイズを取得しようとします:(

参照が必要な場合は、コードを共有しました: https://drive.google.com/file/d/0B-mc4aKkzWlxTWdNNmpuQ0ptQ3M/edit?usp=sharing

私の投稿を読んでくれてありがとう、あなたが解決策を知っていることを願っています:)

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

c++ - コンテンツが動的に変化する QScrollArea

写真に示すように、いくつかのボタンを含む QScrollArea があります。 ここに画像の説明を入力

レイアウトの考え方は次のとおりです。 1. 左右のボタンは、幅が広すぎる場合にボタンをスクロールするために使用する必要があります。

2.スクロール領域のボタンの数は動的に変更できます。そのようなスペースが存在しない場合は、スクロールにナビゲーション ボタンを使用する必要があります。

ボタンを増やすときの現在の実装では、次のようになります。 ここに画像の説明を入力

ただし、右側には空き領域があるため、次のようになります。 ここに画像の説明を入力

たとえば、もう一度10に増やすと、スクロールバーが表示されます(レイアウトはウィジェットによって制限されているため)。

ウィジェットの手動サイズ変更以外に他の方法があるかどうか知りたいです(UIを変換でき、ボタンのサイズヒントを変更できるため、実際のデザインはより複雑です:(

ScrollAreaTest ウィジェットの実装は次のとおりです。

そして、ここに問題を含む Qt プロジェクト全体があります: https://drive.google.com/file/d/0B-mc4aKkzWlxQzlPMEVuNVNKQjg/edit?usp=sharing

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

qt - QtでQPushButtonのレイアウトセルを埋める

ボタンの作成時に、セルによって提供されるスペース全体を埋めるか、埋めないかのプッシュボタンが必要ですQGridLayout(配置値はファイルから読み込まれます)。次のコードで状況を単純化しました。実行時に、ユーザーはボタンの配置を設定できます。ボタンをレイアウト セル全体に配置するか、中央に配置するかのいずれかです。ボタンが指定された NULL 配置で開始されない限り、機能します。それでも、NULL アラインメントで開始する機能が必要です (つまり、ボタンがレイアウト セルのスペースを埋めます)。最初に NULL で位置合わせするとき、ボタンを AlignVCenter 設定にロックするために何が設定されていますか? また、ボタンを null 位置合わせ以外で初期化されたように動作させるにはどうすればよいですか?

Ubuntu 12.04 LTSでQt 4.8を使用しています

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

python - (Py)Qt: QHBoxLayout のスペーシングは、親ではなく中央ウィジェットの背景を示します

次のコード例を検討してください。

それは持っています:

  • A QMainWindowQWidget中央ウィジェット ( red )として、中央ウィジェットQVBoxLayoutの子として。そこの中に:
    • A QTextEdit(フィラーとして)
    • A QWidget() QHBoxLayout。その中で:
      • QLabels

これは次のようになります。

Qt HBoxLayout

QHBoxLayoutは の子であるため、ラベル間のスペースは黒であると予想されますが、その間は「見えず」、中央のウィジェットは「透けBlackBarて見える」ようです。BlackBarどうしてこれなの?

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

qt - Qt: HBoxLayout - MainWindow がコンテンツに合わせてサイズ変更されないようにする

QMainWindowほとんどの人がコンテンツのサイズを変更する方法を尋ねているようです.

長いテキストに設定QLabelすると、メインウィンドウが突然大きくなり、なぜそうなるのかわかりません。

次のコード例には、基本的に次のものが含まれています。

  • QMainWindow
    • QWidget中央ウィジェット として
      • QVBoxLayoutその子としての A
        • そのLabelBar中にA.

LabelBarであり、次のQWidgetものが含まれます。

  • QHBoxLayout
    • その中に2 つQLabelの s があります。

1 秒後、QTimer問題を示すためにラベルを長いテキストに設定します。

PyQt サンプル コード: