問題タブ [qmainwindow]
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++ - qt centralWidget (QGLWidget) のサイズが適切に変更されないのはなぜですか?
QMainWindow を持つアプリケーションがあり、理想的には QGLWidget を中央に配置し、ツールバーやその他のトップ/サイド ウィジェット用に外側にスペースを残します。
残念ながら、QGLWidget がどのようなサイズまたはジオメトリに設定されていても、巨大に見え、メイン ウィンドウ全体を占有します。
基本的に、セットアップは次のとおりです。 CreateWindow() は main() で呼び出され、メイン ウィンドウを構築し、GLWidget を構築する関数 Init() を呼び出します。したがって、適応したメイン ウィンドウ クラスのメンバーである Init() 内には、基本的に次のものがあります。
ここで、GLScene を目的のサイズと位置に合わせるために、まず GLWidget (GLWidget から直接派生した私のクラス) コンストラクター内でジオメトリを設定しようとしました。
ただし、これはまったく機能せず、メイン ウィンドウ全体を占有していました。代わりに、setGeometry 呼び出しを Init() に入れてみました。setCentralWidget(); の直前と直後の両方で試しました。どちらのオプションも機能しませんでした。また、setCentralWidget 呼び出しを完全に削除することもできませんでした (実際、これにより GLWidget が消えました)。
これは明らかに適切に機能していないため、GLWidget をスケーリングする正しい方法は何ですか? それとも、もっと深く調べる必要があるのは、物事がどのように順序付けられているかだけの問題ですか?
qt - 入力を qdialog からメインウィンドウに転送する
qdialog で、必要な入力をメインウィンドウに入れました。どうすれば取得できますか? 私のプログラムはこのようなものです。メインウィンドウの前に開く必要があるqdialogがあり、そこに入力して[OK]をクリックすると、それらの入力を使用してmainwinodwが開きます。
ここにdialog.cppコードがあります:
メインウィンドウで使用する bmp、xMax などを取得するにはどうすればよいですか
qt - qdialogを非表示にし、メインウィンドウを表示します
メインウィンドウで使用する入力を取得するQdialogがあります。したがって、メインウィンドウよりも最初に表示される必要があります。
問題は、メインウィンドウが表示されないことです。これが私のmain.cppです
押すとqdialogが非表示になり、非表示にするとメインウィンドウが表示されるはずのプッシュボタンがあります。
これが私が使ったスロットです:
メインウィンドウは、そのボタンがクリックされた後にのみ開始できます。その場合にのみ、メインウィンドウへの入力があります。
qt - qmainwindow で使用するために qdialog から変数を保存する
dialog.h、dialog.cpp、および dialog.ui を作成しました。ダイアログには qlineedit があり、[OK] ボタンと [キャンセル] ボタンがあります。これらの linedit 情報をメインウィンドウで使用するために別の場所に保存したいと考えています。ファイル。これが私のダイアログコードです。
mainwindow.cpp で xMax の値を使用するにはどうすればよいですか??
ここに私のdialog.hがあります
これが私のmain.cppです
そこで、xMax を使用して、メインウィンドウの planevolume.cpp で何かを計算したいと考えています。
c++ - QMainWindow の QT 4.8 パディング
QTの勉強を始めました。MainWindow を作成し、いくつかのウィジェットをレイアウトに配置すると、次のように、ウィンドウの端とウィジェットの間に隙間ができます。
このギャップをオフにするにはどうすればよいですか?
layout()->setContentsMargins(0,0,0,0);
ウィンドウのスタイルシートを編集しましたが、効果はありませんでした。私は何をすべきか?
python - Qt を使用した Python でのメイン ウィンドウのサイズ変更
ファイルにGUIがありui_main.py
ます(Qt Designerで設計されています)。*.py
この方法でメインファイルにロードします:
ui_main.py ファイル:
アプリケーションの起動中にメイン ウィンドウのサイズを変更する必要があります。私の主な問題は、メイン ウィンドウ オブジェクトにアクセスできないことです。
ui_main.py
ファイルに追加する場合:
メイン ウィンドウのサイズを次のように変更できます。
しかし、生成された ui ファイルを編集するのは非常に悪いことです。GUI ファイルを編集せずにメイン ウィンドウのサイズを変更するにはどうすればよいですか?
c++ - Qt でダイアログからデータを取得し、それを Ui で使用する
そこで、Qt を使用してテキスト エディターを作成しています。現在、「テキストの書式設定」というダイアログを開くボタンがあります。いくつかのドロップダウンリストからいくつかのテキスト属性を選択すると、テキストがどのように見えるかを示す「フォント」と呼ばれるメモ帳のダイアログのように機能するようにしたいと思います。現在、フォント スタイル、フォントの色、フォント サイズを選択してプレビューを表示すると、ダイアログのボックスにテキストがどのように表示されるかが表示されます。ただし、強調表示されたテキストまたは入力しようとしているテキストを変更することになっている「OK」というボタンがありますが、それらの変更をメインウィンドウに表示する方法がわかりません。。ui ファイルは非公開であり、既に作成された多くの関数とポインターはすべての ui ファイルで同じであるため、ui ファイルを pubic に変更すると、多くのものを変更する必要があります。とにかく簡単な答えを教えてもらえますか?できるだけ混同しないようにしています。私のスキルレベルの人にとっては、コーディングが少なくて混乱が多いよりも、コーディングが多くて混乱が少ない方が良い. 申し訳ありませんが、これはすべて 1 つの巨大な段落であり、コードを提供していませんが、コードが必要だとは思いませんでしたが、コードの一部が必要な場合は、喜んで共有します. ご協力いただき、ありがとうございました。皆様の素敵な夜をお過ごしください。私のスキルレベルの人にとっては、コーディングが少なくて混乱が多いよりも、コーディングが多くて混乱が少ない方が良い. 申し訳ありませんが、これはすべて 1 つの巨大な段落であり、コードを提供していませんが、コードが必要だとは思いませんでしたが、コードの一部が必要な場合は、喜んで共有します. ご協力いただき、ありがとうございました。皆様の素敵な夜をお過ごしください。私のスキルレベルの人にとっては、コーディングが少なくて混乱が多いよりも、コーディングが多くて混乱が少ない方が良い. 申し訳ありませんが、これはすべて 1 つの巨大な段落であり、コードを提供していませんが、コードが必要だとは思いませんでしたが、コードの一部が必要な場合は、喜んで共有します. ご協力いただき、ありがとうございました。皆様の素敵な夜をお過ごしください。
layout - Qt4: 中央のウィジェットのサイズを維持しながらマイナー ウィジェットを非表示にする
メインの「表示」ウィジェットといくつかのマイナーウィジェットを備えた QMainWindow があります。マウスがウィンドウに出入りするときに、マイナー ウィジェットのオン/オフを切り替える機能が欲しいです。
必須ではないウィジェットの表示/非表示を実装enterEvent
し、呼び出しを行うことで、この基本的な機能を実現できます。leaveEvent
ただし、Qt4 のデフォルトの動作は、QMainWindow ジオメトリを固定したままにし、重要なウィジェットのサイズを変更することです。このウィジェットのジオメトリを維持し、必要に応じて QMainWindow を移動/サイズ変更したいと思います。これは可能ですか?
PyQt4 の簡単な例を次に示します。
「主要な」ボタンが拡大/縮小する代わりに、このボタンを囲むように MyWidget の境界を変更したいと思います。
qt - QMainWindow / QDialog(Qt 4.8)の移動の終了を検出します
X11でQt4.8.3を使用しています。
ユーザーがウィンドウを画面上でドラッグして終了するタイミングを知る必要があります。これは、最終的な位置を読み取り、最終的にアニメーションを開始してウィンドウの位置を「許可された」位置に調整するためです。
QWidget::moveEvent
小さな動きごとにが呼び出されることに気づきましたが、ユーザーがマウスボタンを離して動きが完全に終了したときにのみ位置チェックを実行する(そして最終的にはアニメーションを開始する)必要があるため、これは非常に不便です。
これが本当の問題です。タイトルバーはQtではなくOSによって制御されているため、ユーザーがタイトルバーをクリックしたときにマウスリリースイベントを検出する(またはマウスボタンのステータスを取得する)方法がないようです。…でも試してみましたQWidget::x11event(XEvent* e)
が、イベントはウィンドウ内でのみ収集され、タイトルバーも収集されません。
誰かがこれを達成する方法を知っていますか?
タイトルバーを自分で再実装する必要があるのではないかと思います…残念です…</p>
qt - QMainWindow デストラクタ
QMainWindow のデストラクタが仮想でないのはなぜですか? QMainWindow からクラス MainWindow を継承し、それにポインタ属性がある場合、MainWindow のデストラクタを使用してメモリを削除できません。