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

python - QLayout: 既にレイアウトがある QLayout "" を QWidget "" に追加しようとしています

いくつかのタブを作成したいのですが、この回答を読みました: How to add a tab in PySide

回答のコードを使用し、いくつかの変更を加えました。コードでいくつかのファイルを読み取り、それらのファイルからタブの名前を取得する必要があるため、コードに for ループを追加します。そして、ここに私のコードがあります。

それは本当に私のタブを表示します。ただし、次のような警告が表示されました: QLayout: Attempting to add QLayout "" to QWidget "", which has already has a layout . このタブ コードはコード全体の一部にすぎないため、問題によりデータ フローがブロックされます。そして、私はそれの何が悪いのか分かりません。答えを探しましたが、他の答えはpythonで書かれていません。

誰かが私を助けることができれば、事前に感謝します。

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

qt - レイアウトを使用した自動スケーリング Qt UI の作成

4 つのレイアウトで構成され、次のプロパティを持つ Qt UI を作成する方法についてアドバイスをいただければ幸いです。

  1. 以下に示すように、UI の高さの増加はレイアウトによって吸収されます。 ここに画像の説明を入力

  2. UI の高さのさらなる減少は、特定のレイアウトのコンテンツによって吸収されます。たとえば、以下に示す 2 つの大きなボタンです。 ここに画像の説明を入力

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

c++ - QSpacerItems を使用せずに QBoxLayout のアイテムを中央に配置する方法

AQLayoutは常に の使用可能なスペース全体を使用しようとしますQWidget。しかし、場合によっては、ウィジェットの最小サイズを維持し、ウィジェットの中央に配置したい場合があります...見栄えが良くなったように感じるからです (レイアウトに、デフォルトサイズよりも大きく表示する意味がないアイテムのみが含まれている場合: QLabelQPushButtonそしてそのようなもの)。

私は過去に何百回もこの問題を抱えていましたが、それを修正するために常に愚かな QSpacerItems をどこにでも追加しています。より良い解決策があるかどうか疑問に思っています。

問題を例として分離しました。

スペーサーがない場合は、次のようになります。

ここに画像の説明を入力

私はこの表示が嫌いです。大きくQWidgetすると、関連する情報を見つけるためにウィジェット全体を見て回らなければなりません。

スペーサーを使用すると、次のようになります。

ここに画像の説明を入力

私はそれがずっと好きです。

スペーサーを追加せずにこれを行う方法はありますか? それらを追加し、常にそれらすべての引数を指定する必要があるのは面倒です(デフォルトでは、あなたが望むことはできません...)。

私はQLayout::setSizeConstraint成功せずに使用しようとしました。これを行うことを意図していないようです。

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

qt - QMdiArea: 最初のタブは正常に動作しますが、2 番目のタブのコンテンツが小さすぎます

状況:アプリケーションの中心的なウィジェットとして、タブモードのQMdiAreaがあります( QMdiAreaから継承したカスタムクラスにラップされています)。QMdiSubWindowを介して最初の QMdiSubWindow を追加してaddSubWindow()も問題ありません。つまり、ウィンドウとその内容が最大化されて、QMdiAreaのすべてのスペースが占有されます。ただし、2 番目のサブ ウィンドウを追加するとすぐに、次の問題が発生します。

問題: 2 番目のウィンドウのコンテンツが表示されず、最初のウィンドウのコンテンツが表示され続けますが (2 番目のタブに視覚的にフォーカスがあるにもかかわらず)、サイズが縮小されます。数ピクセルしか占有しません。しかし、最初のサブウィンドウ/タブに戻って (サイズが縮小されたウィジェットをクリックして自動的に最大サイズに戻るか、最初のタブヘッダーを選択して) 2 番目をもう一度選択すると、すべて問題ありません = 2 番目のタブのウィジェット/エディターが表示され、最大化されます。

ただし、2 番目のタブを閉じるまでは、最初のタブのコンテンツが (予想どおり) 表示されますが、小さいサイズでしか表示されません!

スクリーンショット: 問題の概要を示すスクリーンショット

別の関連するテスト ケース: 最初のタブが作成され、期待どおりにフル サイズで表示されます。QMainWindow全体のサイズを単純に変更すると、タブのウィジェットの周りに突然かすかな境界線が表示されます。そのため、境界のある最大化モードと通常モードが混在した状態にあるように見えます。それは新しいリードを生み出しますか?

スクリーンショット:

関連する問題の概要を示すスクリーンショット

私はこれまで明示的に定義されたレイアウトを使用していませんが、最初のタブが正常に機能し、手動で前後に切り替えた後に他のすべてのタブも同様に機能することを考えると、それがなくても機能するはずです.

明示的なレイアウト オブジェクトを設定する必要がありますか? 最初のタブでは機能するのに、2 番目のタブでは機能しないのはなぜですか?

ベースとしてのコード: これは、新しい子の追加を処理するカスタムQMdiAreaクラスで実行されるロジックです。

更新: N1ghtLight によって提案されたハックを追加しました。コーディングでそのようにマークされています。

更新 2:問題の説明を編集/修正 + スクリーンショット付きの新しいテスト ケース。

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

c++ - Qt - Qt デザイナーでレイアウトを使用する方法

レイアウトの使用に問題があります。ご存知のように、Qt デザイナーにはデフォルトでいくつかのレイアウトがありますが、それらは役に立ちません。レイアウトセクションのウィジェットバーにはカスタマイズされたレイアウトがいくつかありますが、それらを使用することはできません.UIに挿入しても実際には何もしません。誰かが私がそれらを使用するのを手伝ってくれる?私の英語がうまくない場合は申し訳ありません。ところで、それは私の第一言語ではありません。

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

c++ - QMainWindow にウィジェットが表示されない

こんばんは、

目的は、3 つのセクションが隣り合ったメインウィンドウ (Designer を使用せずにコーディングによって作成) を作成することです。

  1. データポイントのリスト (ベクトル)
  2. データポイントに関する統計
  3. データのグラフィカルな要約 (ヒストグラム)

私は独自のウィジェットを作成して図を描き始めました(これまでのところテスト目的のための線だけです)。ただし、tableview ウィジェットが表示されている間、「図」ウィジェット (クラスhistogramのインスタンス) は表示されません (3 番目の垂直列である必要があります)。

Stackoverflow での非常によく似た問題が、私に方向性を与えてくれました。しかし、テーブルでウィジェットを表示するのに役立ちましたが、カスタム ウィジェットを表示する方法がわかりませんでした。

投稿: qt メイン ウィンドウにウィジェットが表示されない

文献 (Jürgen Wolff による Summerfield および Qt4 Hui Entwicklung mit C++) も確認しましたが、中央のウィジェットが 1 つしかない例しかありません。

スクリーンショット: ここに画像の説明を入力

備考: このコードで

テスト ダイアグラムを使用して別のウィジェットを作成できました。(親情報を削除し、diagram->show() を呼び出します)