問題タブ [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.
c++ - doLayout:別のウィジェットの上にGeometryを設定する方法は?
ここで同様にカスタム レイアウトを作成したい: http://doc.qt.io/qt-5/qtwidgets-layouts-flowlayout-flowlayout-cpp.html
カスタムボタンの上にチェックボックスを配置する方法が必要です。今のところ、
ボタンとチェックボックスのいずれかのメソッドですが、最初にボタンまたはチェックボックスのどちらで実行しているかにかかわらず、チェックボックスはボタンの「下」に表示され、表示/クリックできません。
ボタンの上にチェックボックスを配置するにはどうすればよいですか?
c++ - Qtで2つのウィジェットを「接着」
私は 2 つのウィジェット (両方ともQFrames
) を持っていますが、それらのいずれにも関連付けられたタイトル バーはありません (これは を通じて達成されますsetWindowFlags(Qt::FramelessWindowHint)
)。そのうちの 1 つはメイン ウィジェットで、もう 1 つはサイドバーのようなウィジェットで、右側の境界 (メイン ウィジェットの約 1/4 の高さ) でくっつくはずです。
QFrame
メインウィジェットは上部からドラッグできるため、両方を静的な配置で透明に保つことはできません(タイトルバーがないため、 mousepress
/mousemove
イベントをインターセプトしてそれに応じて移動することで手動で行います)。メイン ウィジェットのカスタム ドラッグは正常に機能しますが、サイドバーを一緒に移動しようとすると、2 つの間に非常に明白な視覚的な遅延が表示されます。メイン ウィジェットを左にドラッグしている間、2 つの間に一時的なギャップが表示されます。メインウィジェットを右にドラッグすると、2 つが一時的に重なります (サイドバーはドラッグできず、ドラッグロジックが実装されていません)。
これら 2 つのウィジェットを「接着」して、遅延なく常に一緒に移動するにはどうすればよいですか? QDockWidget
ここで役立つ可能性があるかもしれませんが、その方法を理解できませんでした。ここのメイン ウィジェットはQMainWindow
.
プラットフォーム - OS X Yosemite、Qt 5.3.1、32 ビット。
qt - シンプルなリボン: ツールバーとタブの自動サイズ変更
Qt5でシンプルなタブ付きインターフェースを実装しようとしています。QToolBars をタブ内に配置して QTabWidget を使用し、QToolBars に QActions を追加します。
以下のツールバーとウィジェットは垂直レイアウト内にあります。ツールバーの高さを、内部に QToolButtons を保持するのに十分な高さに自動サイズ変更したいと思います (最後のものは、アイコン、テキスト、またはその両方 (アイコンの下または右側のテキスト) を表示でき、高さに影響します)。親タブの幅に収まるように、幅を自動調整して、できるだけ多くのツールボタンを表示します。また、親タブの高さを自動的に拡大または縮小して、ツールバーを表示できるようにしたいと考えています。Qtでそれは可能ですか?はいの場合、どのように?
UPDATE1: ツールバーを QTabWidget のタブ ウィジェットとして使用することにより、水平方向の自動ストレッチが既に行われています。しかし、垂直のものはまだありません。重要なコード (QDesigner の場合):
現在、ウィンドウが垂直方向にサイズ変更されると、タブ ウィジェットも垂直方向にサイズ変更されます。しかし、含まれているツールバーの高さに応じてのみサイズを変更し、親ウィンドウのサイズが変更されたときにその高さを維持したいと考えています。
UPDATE2: QTabWidget の垂直方向のサイズ ポリシーを Fixed に設定し、垂直方向のサイズ ポリシーの下の QScrollArea を Expanding に設定することで、予想される垂直方向の自動サイズ変更が行われます。上記の UI XML は、それに応じて変更されています。
c++ - カスケード メニューで右から左への機能 (アラビア語など) を使用するための Qt Layout Direction の取得
OS X 10.11でQT5.5アプリケーションを作成しています。Right-to-Left 言語のQt::LayoutDirectionの設定など、言語を動的に切り替えるメニュー オプションを実装しました。右から左への言語サポートのモックアップとして、アラビア語でテスト アプリケーションと翻訳ファイルを作成しました。スクリーンショットは次のとおりです。
私はアラビア語をまったく知らないので、ここでは役に立ちません。表示される翻訳は Google 翻訳によるものです (アプリが完成したら、専門家に翻訳してもらいます)。それにもかかわらず、動作は部分的にしか正しくないように見えます。
これらの機能は私の期待に一致します。
- 画面右側から「ファイル」「編集」「オプション」メニュー項目
- 「オプション」の「言語」サブメニューは、メインの「オプション」メニューの左側にカスケードします。
ただし、次の機能は私の期待と一致しません。
- 「オプション」メニューの「1 番目」/「2 番目」/「3 番目」/「言語」メニュー項目が、右揃えではなく左揃えになっている
- チェックマークはエントリの右側ではなく左側にあります
- 「Language」サブメニューのサブメニューカスケード矢印が左ではなく右を指す
したがって、私の最初の質問は、私の予想が間違っていて、インターフェイスが実際にアラビア語に対して正しく動作しているのか、それとも何を修正する必要があるのかということです。
更新: アラビア語を話す同僚は、上記のスクリーンショットが私が言及した意味で間違っていることを確認しており、代わりに次のように表示する必要があります。
私の 2 番目の主な質問は、右から左へ記述する言語で Qt カスケード メニューが適切に動作するように、問題を修正する方法です。
以下に、このスタンドアロンの例の完全なコードと、使用した翻訳の Qt ".ts" ファイルを含めます。
そして翻訳ファイル:
この行がすべてのウィジェットとサブウィジェットに対して「正しいことをした」ことを願っていましたapp.setLayoutDirection( Qt::RightToLeft );
が、そうではないようです。おそらくそうでしたか?どんな助けでも大歓迎です。
ありがとう
python - PyQt5 はカスタム QWidget を QLayout に追加します
現在、カスタム QWidget クラスを QVBoxLayout に追加しようとしています。私が得ている問題は、ウィジェットがレイアウトにまったく表示されないことです。デフォルトのサイズがゼロに設定されているためにウィジェットが表示されていないと思ったので、QWidgetの最小サイズを設定しようとしました。
これは、クラスがどのように見えるかを簡略化したものです。
ここでは機能について心配していないので、スライダーと LCD 画面の間に作成された信号とスロットを削除しました。次のコードの 2 つのボタンの間に QSize(400,300) の灰色の領域が直接表示されるという事実のみ:
つまり、私が単純に行っているのは、3 つのウィジェットを作成し、それらを中央のウィジェット内の QVBoxLayout に配置することです。2 つのボタン ウィジェットw1
とw3
が表示されますが、カスタム ウィジェットは表示されず、ウィジェットのサイズを大きくすると、 と の間にsetMinimumSize
グレーのスペースが追加されるだけです。w1
w3
したがって、ウィジェットはそこにありますが、何らかの理由で表示されません。私はPyQtにかなり慣れていないので、なぜこれが起こったのか説明してください.