QT5.3.2 複数のダイアログ表示について

このQ&Aのポイント
  • 【QT5.3.2】複数のダイアログ表示について質問がります。QT Disignerで複数のフォームを作成し、メインのフォームの上半分に他のフォームを表示したいですが、方法がわかりません。
  • 質問: QT5.3.2で複数のダイアログ表示をする方法を教えてください。
  • QT5.3.2で複数のダイアログを表示する方法を教えてください。QT Disignerを使用して複数のフォームを作成し、メインのフォームの上半分に他のフォームを表示・非表示したいです。
回答を見る
  • ベストアンサー

QT5.3.2 複数のダイアログ表示について

QT5.3.2 複数のダイアログ表示について質問がります まず自分の現在の環境は、 OSがLinuxのDebian 開発環境:QT5.3.2 で開発しています。最近仕事で始めるようになり ちょっと大きな壁に行き詰っていたので質問いたしました ・QT Disignerで複数のフォームを作成いたしました。仮にメインのフォームをA、サブ1のフォーム」  をB、サブ2のフォームをCとおきます メインのフォームの上半分を何もボタンなどおいておらず隙間を開けています そこで質問ですが、そこにフォームBやフォームCを表示・非表示したいと考えていますが どのようにおこなったらよいのかわかりませんよろしくお願いします ちなみに、VS2010 C++ MFCではフレームを置き、そこでダイアログの入れ替えを行っていた記憶がありますが、今回はどのようにしたらメインのフォームの上半分にほかで作成したフォームを表示するのかわかりません。 以上よろしくお願いします。  

質問者が選んだベストアンサー

  • ベストアンサー
  • siffon9
  • ベストアンサー率64% (136/211)
回答No.1

こんにちは QTを触ったのははるか昔で、かつ、QT Designerも使用したことが無いので外したらゴメンナサイ。 メインフォームの隙間にフォームAとして、QStackedLayoutか、QStackedWidgetを配置。 フォームBやC(と非表示ということで何もないフォームDも必要?)をQWidgetで作成して、 A.addWidget()でB,C,Dをスタックに追加。 A.setCurrentIndexで切り替えを行うと良いのではないでしょか?

参考URL:
http://qt-project.org/doc/qt-5/classes.html

関連するQ&A

  • メインダイアログが最背面に表示されてしまいます。

    お世話になります、fujitomoです。 C++のダイアログベースのプログラムを作成しているのですが、ご質問 させていただきたい件がありまして、こちらへ書かせて頂きました。 質問させて頂きたい内容は、メインダイアログにて、他ダイアログをAfxBeginThread()を用いて別スレッドでモーダル表示させた時、その他ダイアログを他ダイアログ内でEndDialog(IDOK)で閉じた際に、メインダイアログが最背面になってしまうのですが、この原因として考えられることはありませんでしょうか? ちなみに、他ダイアログを別スレッドではなく、メインダイアログ内にてモーダル表示をし、EndDialog(IDOK)で閉じた際には、メインダイアログが最背面になることはありませんでした。 参考となるご意見がありましたら、よろしくお願い致します。 開発環境は Visual Studio 2005です。

  • ダイアログの非表示が遅い

    ダイアログの非表示が遅い Windows CE上で動作するソフトを作成中で、約2cm×2cmほどのボタンだけのダイアログが1つ(メインのダイアログ)、約2cm×1cmほどのボタンだけのダイアログが3つあります。(ダイアログの大きさは、それぞれのボタンと同じサイズで、メイン以外はモーダレスです。) その中の1つを押すと、別の全画面サイズのダイアログを表示し、そのダイアログ上のボタンを押すと、元のボタンだけになるようにしています。 全て、メインのダイアログのOnInitDiarog()で生成しておき、ShowWindow(SW_SHOW)で表示し、ShowWindow(SW_HIDE)で非表示にしているのですが、全画面サイズのダイアログを非表示にする際、表示が消える前に、ボタンのダイアログが表示されてしまい、見た目がかなり悪いのです。 Windows CEは遅いと聞いた事はあるのですが、どうにか対処する方法はないのでしょうか? どなたか助言をお願い致します。 環境は以下の通りです。 ・Windows CE 5.0 ・Visual C++ 2005 ・MFCスマートデバイス 以上、よろしくお願いします。

  • Qt4 Designerについて

    Ubuntu8.10 + Qt4.4.3でGUIプログラムに挑戦しています。 以前、Debian+Qt3の時、Qt Designerでダイアログを作り、 ボタンなどのWidgetを右クリックするとSourceがありクリックすると、C++の関数プロトタイプ を書けて、その後、qmake -project qmake OX すると、OX.h OX.cppを生成してくれたと思うんですが (あまり、確かな記憶ではないですが) また、ProjectOverviewからもSoruceウィンドウを表示できたと思います。 Qt4では、ui_OX.hが生成されるみたいです。 その後、このui_OXクラスを継承してOXクラスのOX.h OX.cppを手で書いていくみたいなんですが これだと、Qt3の時の方が手軽だったような気がします。 また、Sourceウィンドウが見当たりません。 Qt3のころのようにOX.h OX.cppのスケルトンを自動生成する方法は無いのでしょうか? よろしく、お願いいたします。

  • LINUX QTで作成したCSVファイル

    現在、私はOS:LINUX(Debian)上で、開発環境QT5を使ってアプリケーションを作成しています そこでひとつ難題が発生したので質問させていただきました 現在QTでCSVファイルを作成するようなプログラムを作成しています QT上、もしくは直接デバッグフォルダかリリースフォルダからアプリ実行すると正常に CSVが作成されるんですが、 今回電源をつけてから自動的にアプリが実行できるよう LINUXの設定にある自動起動するアプリケーションにとうろくしました。 パソコンを立ち上げてみて自動起動することは確認できましたが、CSV作成で失敗してしまう 事象が発生しました. アプリを実行すると正常に作成されるんですが なぜか自動起動されると作成に失敗されます よろしくお願いします

  • [ファイルの上書きの確認]ダイアログを自前で表示したい

    開発環境はC#、.NET Framework2.0です 複数の巨大な圧縮ファイルを作成する処理を作成しています。 保存フォルダの指定はFolderBrowserDialogを使用し、ファイル名は作成するデータから自動生成しています。 但しファイル名にはタイムスタンプ等、重複を避けるようなものは付加しませんので、保存フォルダ次第でファイルの上書きが発生します。 また作成するファイル自体も容量が多いため、作成に時間がかかります。 そこでファイルを作成する前に添付した画像のようなダイアログを出して、 ファイルの作成・上書き保存を判断させたいと思っているのですが、 MessageBoxには[すべて上書き]ボタンが無く使えませんでした。 添付のような[ファイルの上書きの確認]ダイアログを使用したいのですが、どうしたらいいでしょうか? アイコンやファイルの詳細は表示されなくても結構です。ボタンが4つ表示出来るダイアログさえあれば問題ありません。 自分でこのような形のフォームを作成するしかないのでしょうか?

  • メインダイアログからの各ダイアログの呼び出し時に発生するエラーについて

    お世話になっています、fujitomoと申します。 現在、Visual C++のダイアログベースプログラムを作成しており、 メインダイアログから、各ダイアログ(計7つほど)にメッセージを送信したり、DoModal()で表示するために、メインダイアログのメンバ変数に各ダイアログのインスタンスを定義しました。 Ex) CSampleAClass A; CSampleBClass B; このように、定義し、いざメインダイアログからダイアログを呼び出そうとしたときに以下のようなメッセージのエラーが表示されました。 Unhandled exception at 0x40042c10 in Sample.exe: 0xC00000FD: Stack overflow. これはWindows CEのみのメッセージかもしれないのですが、たぶん言いたいことはスタックオーバーしてるよ、ということだと思います。 そこで、計7つのダイアログの定義を少なくして、6つにしたところ、上のエラーメッセージはでず、正常にダイアログが表示されました。 次にメンバ変数で各ダイアログのインスタンスを定義するのではなく、そのポインタを定義するようにプログラムを変更してみました。 Ex) CSampleAClass* A; CSampleBClass* B; このようにすると、計7つのダイアログをメンバ変数に定義してもエラーが発生せずに、正常にダイアログを表示させることが出来ました。 この理由はなぜでしょうか? C言語を始めて時間はたっているのですが、いまだにいまいちインスタンスのオブジェクトとそのポインタでの定義における違いがよく分かっていません。今回のことから、クラスをメンバ変数に定義するときはポインタで定義したほうがいいということなのでしょうか? ご参考となる意見がございましたら、ご意見宜しくお願い致します。 尚、開発環境は Windows CE 6.0 Visual Studio 2005 です。 宜しくお願い致します。

  • タスクマネージャに表示するダイアログの変更

    開発環境: Visual Studio 2008 Pro 現在メインウィンドウのOnInitDialog()内から複数のダイアログを順次モーダル表示させ、 OnInitDialog()を抜ける時には自身のウィンドウに対してWM_CLOSEを送ることでアプリを 終了させるプログラムを作成しております。 ですがこのやり方だと、モーダル画面等で処理中にはタスクマネージャーにアプリケーションが 表示されません。 特定のダイアログに対してウィンドウスタイルを変更すれば解決できるかと思い、 (1)メインウィンドウのOnInitDialog()開始直後に自身のウィンドウスタイルからWS_EX_APPWINDOWを削除。 (2)代わりにメインウィンドウとして認識させたいダイアログに対してWS_EX_APPWINDOWを設定。 上記の処理を試してみましたが、タスクマネージャーに表示させることができませんでした。 必要な処理などに誤りがあるのでしょうか? もしご存知の方がいらっしゃいましたらどうかご教示いただけます様お願い致します。

  • QT グループボックスについて

    QT グループボックスについて質問がございます 枠線を表示したのですがわからないためよろしくお願いします もし表示できない場合、ほかに枠線ありのグループボックスの表示の行い方をご存じでしたら よろしくお願いします。 環境 Qt 5.3.2 OS:Linux ちなみにQt Designerで作成していて、今回の問題が発生したためお願いします

  • ダイアログを表示しないexeを作成しようとしてるのですが、どのプロジェクトでしたらよいのでしょうか?

    お世話になります。 VisaulStdio2003 C++ で開発しております。 インストールシールドのある箇所からA.exe(C++で作成)を起動しようとしているのですが、そのA.exeはファイルなどを削除する処理で、ダイアログとかは、何も表示しないようにしたいのです。 そのような場合は、A.exeはどのプロジェクトで作成すればよいのでしょうか? ※私の知識では、MFCのダイアログベースで作成し、ダイアログを非表示にするくらいしか思いつかなかったのです。。。 お手数ですがよろしくお願いします。

  • ダイアログのボタンが押された時に、その「ボタン」のあるダイアログと、すでに表示されている他のダイアログを消したいです

    Win2000/MFC/ダイアログベース で作業しています。初心者です(^^;) Aというダイアログで「あるボタンa」を押してDoModalでBというダイアログを表示させ、Bダイアログで「あるボタンb」を押してDoModalでCというダイアログを表示させ、Cダイアログで「あるボタンc」を押した時にBダイアログとCダイアログを閉じたい(消したい)のですが EndDialogで消せません DoModalの戻り値をret_b,ret_cとした場合 EndDialog(ret_c); EndDialog(ret_b); としたのですが。。。 やり方がおかしいのか、よくわかりません・・ 初心者でもわかりやすいお返事お待ちしています(^^;)

専門家に質問してみよう