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

qt - QWidget :: setLayoutエラー:すでにレイアウトが設定されているQLayout[...]を設定しようとしています

実行時に(コンパイルエラーなし)コンソールに表示されます

QWidget :: setLayout:すでにレイアウトが設定されているCGSearchResult""にQLayout""を設定しようとしています

私は次のコードを使用しています:

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

drag-and-drop - PyQt: ドラッグ アンド ドロップ ベースのスクラブル UI

コンソールベースの I/O を使用して対話できる単純なボットと人間の部分を備えた単純なスクラブル ゲームを作成しました。ゲームの現在の状況の Qt ベースの概要は既にありますが、QWidget単純にすべてをペイントする単純なカスタムです。相互作用や空想はまだありません。

私の現在の、かなりうまくいっている、解決策
(出典: reaktor42.de の b52 )

私の問題は、コンソールベースの対話を削除して、新しいドラッグアンドドロップベースのアプローチに切り替えたいということですが、PyQt と GUI 開発全般に精通していません。

したがって、私の質問は、どうすればよいのでしょうか? ボードとラックのカスタム レイアウトと、ドラッグ可能なカスタム レター ウィジェットを作成しますか?

前もってありがとうオリ

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

qt - QGridLayout、3 ペイン、正しく展開されない

ウィンドウを(すべてコードで)レイアウトしようとしていますQGridLayout. ウィジェットをレイアウトに追加してウィンドウに表示することはできますが、サイズを適切に変更する方法がわかりません。これが私が欲しいものです

これらは、私のウィンドウの 3 つの「ペイン」です (3 つすべてにリストがあります)。左と右のものは静的な幅で、それぞれの側面を包み込む必要があり、中央はウィンドウが拡大 (または縮小) するにつれて幅を埋めるように拡張する必要があります。

いくつかのコード:

GridRowSecond(お分かりかもしれませんが、これは最終的には 9x9 のグリッドになりますが、要点は残ります。中央の行 ( ) に伸縮性のある列を持たせようとしています)。

行自体は問題なく展開されます。問題は、各セルのウィジェットを拡張して、それらを含むスペースを占有しているようです。どうすればいいですか?(また、垂直方向にはリストが適切に拡張されていますが、水平方向には拡張されていません)。

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

qt4 - 効果的なQtレイアウト管理

Qtのレイアウトは非常に強力で柔軟性があるように見えますが、直感的でない場合もあります。希望のウィジェットレイアウトを取得するために、時々いじる必要があります。多分私は間違ったアプローチをしていますか?

このフォームを見てください:

ここに画像の説明を入力してください

  1. 作成されたレイアウトはフォームのレイアウトです。aはそのエッジを見ることができず、QtDesignerでこのための設定を見つけることができませんでした。
  2. ラベルとウィジェットの間のスペース(ウィジェットの左側ではなく、ウィジェットの上に配置することをお勧めします)が大きすぎます。それらのサイズを設定maximumしたり、各ラベルとそのウィジェットのサブレイアウトを作成したりできますが、これは方法ですか?
  3. このレイアウトにはいくつかの列があるようです。列/行を分割して再度作成せずに、レイアウトに追加/削除できますか?これを最善の方法で行うにはどうすればよいですか?一番左の列は2番目の列よりも狭くなっています-一番左の列からウィジェットの1つの最小幅を設定しても役に立ちませんでした。

QtDesignerで適切なレイアウトを作成する方法に関する記事をインターネットで探していました。リンクはありますか?Qtレイアウトの操作に関するテクニックを教えてください。

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

c++ - How to programatically resize a QMainWindow to its minimum size

When I have a QMainWindow with a grid layout, when resizing it with the mouse, it won't go below some minimum size that's necessary for all the controls in it to show properly. In my app I sometimes programatically hide controls, but then the window remains the same size and the rest of the controls look spread out, with too much space between them. I end up resizing the dialog manually so it doesn't look ugly.

Can I programatically set the dialog's vertical size to this minimum I get when manually resizing after I've hidden controls in it?

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

qt - Qt DesignerでQComboBoxの最小サイズを上書きするにはどうすればよいですか?

3列のQGridLayoutを含むダイアログがあります。行の1つには、各列にQComboBox、QPushbutton、および別のQPushButtonがそれぞれ含まれています。各列を同じサイズにし、同じスケールにする必要があります。

残念ながら、QComboBoxは、サイズのヒントを大きすぎて、最も幅の広いアイテムを含めるのに十分な大きさに設定しています。「DoNotAdjustAndStopBeingAnnoying」などと呼ばれるSizeAdjustPolicyがないようです。そのため、この調整を強制的に停止するように設定できるものがあるかどうかはわかりません。

これはコードでかなり簡単に実行できることはわかっていますが、この種の詳細を.uiファイルに保持したいと思います。コードを書かずにQt4.8でこれを行う方法はありますか?

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

python - PySide:レイアウトからウィジェットを削除する

PySideアプリケーションのレイアウトからQtウィジェットを削除しようとしています。

これが最小限の例です。これは5つのボタンが含まれるウィジェットであり、真ん中のボタンをクリックすると自動的に削除されます。

実際に起こることはこれです:

実際に何が起こるか

ボタンはクリックできず、レイアウトの計算では明らかに考慮されませんが、画像はそのまま残ります。

Qtのドキュメントによると、レイアウトからすべてのオブジェクトを削除する正しい方法は次のとおりです。

ここでは、3番目のボタンを削除したいので、takeAt(2)del b呼び出してから、そのアイテムのデストラクタを呼び出します。ボタンオブジェクトもリスト.popからbuttons削除され、オブジェクトへの参照が残っていないことを確認します。私のコードは、そのような動作を引き起こすQtドキュメントのコードとどのように異なりますか?

0 投票する
5 に答える
100761 参照

qt - QVBoxLayout: ウィジェットを中央ではなく上部に垂直に揃える方法

Qt では、ウィジェットをレイアウトに追加すると、デフォルトで垂直方向の中央に配置されます。ウィジェットを垂直方向に中央揃えするのではなく、上から下に「リスト」する方法はありますか?

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

qt - スタイルシートからコンテンツマージンを設定する

QLayoutQtのオブジェクトからスタイルシートを使用してコンテンツマージンをゼロに設定するのに苦労しています。で削除できますがQLayout::setContentsMargins(0, 0, 0, 0)、スタイルシートから削除したいと思います。

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

c++ - サイズ変更時にQLabelがテキストを切り取る

QVBoxLayout の全体的なレイアウトを持つカスタム ウィジェットがあります。いくつかのラベル、QFormLayout、ボタン、およびすべての余分なスペースを占有するためのストレッチが含まれています。ラベルの 1 つが非常に大きくなる可能性があるため、テキストが読めない奇妙なケースがないようにしています。ウィジェットは QScrollArea 内に含まれており、ユーザーがウィンドウ全体を縮小してもウィジェットのすべての側面が表示されるようになっています。

QLabel は問題なくサイズ変更されているように見えますが、特定の狭さのポイントに達すると、ラベルの下部の数行が切り取られ、ウィジェットの下部にあるストレッチにスペースが割り当てられます。

Designer を使用せずにコードでこれをすべて行っているため、何かが不足している可能性は十分にあります。サブコンポーネントは、次の順序で QVBoxLayout 全体に追加されます。

テスト結果: QLabel の sizeHint() 関数から返された結果を調べると、ウィジェットが水平方向に縮小されても、返される値は変化していないように見えます。ただし、QLabel は拡大してより多くの垂直方向のスペース (153 対 103 のヒント) を占有しますが、すべてのテキストを収めるには十分ではありません。QLabel が最初に表示されたとき、ピクセルは sizeHint よりも少なくなりますが、heightForWidth の量には十分です。サイズが変更されると、heightForWidth の量より 30 少なくなりますが、sizeHint より多くなります。

確認したところ、大きな QLabel の hasHeightForWidth() と wordWrap() の値が true に設定されています。私は何を間違っていますか?