13

私は、ロードされる前にいくつかのデータに対して何らかの作業を行うために、ツールバーを備えたモーダル ウィンドウを呼び出す必要があるプロジェクトに取り組んでいます。ツールバーが必要な理由は、ユーザーが組み合わせ可能ないくつかの異なるオプションを持っているからです。

ここでの明らかな選択は、モーダル ダイアログです (現在作業中です)。問題は、ツールバーが欲しいということです。これは 2 つの部分からなる質問です。

  1. にツールバーを追加することは可能QDialogですか? (また、Qt Designer でこれを行うことは可能ですか?)
  2. QMainWindow1.ができない場合、どうすればモーダルを作ることができますか?
4

3 に答える 3

4

QMainWindow のツールバーに組み込まれているドラッグ アンド ドロップ機能が必要ない場合は、QDialog の layout() を含む任意のレイアウトに QToolBar を追加するだけです。詳細については、以下のDigviJay Patil の回答を参照してください。これは、概念的に間違いなくクリーンです。

それ以外の場合は、読み進めてください。


  1. QMainWindow::addToolBar() の意味で a を a に直接追加することはできません。QToolBarQDialogQDialogQWidgetQMainWindowaddToolBar()

  2. QMainWindowモーダルを作成することはできませんが、次の方法QMainWindowで aを挿入できます。QDialog

コード:

MyDialog::MyDialog() :
    QDialog()
{
    QMainWindow * mainWindow = new QMainWindow(); // or your own class
                                                  // inheriting QMainWindow

    QToolBar * myToolBar = new QToolBar();
    mainWindow->addToolBar(myToolBar);

    QHBoxLayout * layout = new QHBoxLayout();
    layout->addWidget(mainWindow);
    setLayout(layout);
}

実際、 aQMainWindowは必ずしもトップレベルのウィジェットである必要はなくQMainWindow、単一のウィジェットの子としていくつかの を挿入することもできます (ただし、ユーザーはおそらく の個別のセットと混同されるため、最も賢明な選択ではないかもしれません)。メニュー バー、ツールバー、ドック ウィジェットなど)。

于 2013-08-26T03:03:13.783 に答える