Version 3
menu/tool bar
Version 4
|
Qt メニューとツールバー目次はじめに私たちが使っているアプリケーションの多くは,メニューとツールバーが備わっていることが普通である.Qtでは,簡単にこのメニューやツールバーを設定できるようになっている.ここでは,簡単なテキストエディタの作成を例として,メニューとツールバーの設定のしかたを説明していく.ただし,ファイルの保存や読み出しなど,実際の機能の実装まではせずにサンプルプログラムを作っていく. ここでのサンプルプログラムは「Qt GUIプログラミング」を参考にしている. QMainWindowについてメニューバーやツールバーをおくためには,QMainWindowを使う.つまり,このQMainWindowのサブクラスとしてテキストエディタのクラスを造ればよい.QMainWindowの構成は下の図のようになっていて,それぞれの場所にメニューやアイコンなどを設定していく. menuBar()にはメニューが入る.実際にはQPopupMenuをmenuBar()に追加していくことで,これを実現する.また,QPopupMenuからはQActionを呼び出す.同じように,topDock()にはQToolBarを追加し,QActionを呼び出すようにする. アクションの設定メニューバーやツールバーにはQActionを設定する。したがって、その前にQActionを作っておかなくてはならない。たとえば、Newという機能を作る場合、クラスのメンバーに QAction *newAct; というようにQActionポインタを持たせて、コンストラクタで、 newAct = new QAction(tr("&New"), tr("Ctrl+N"), this); newAct->setIconSet(QPixmap::fromMimeSource("new.png")); newAct->setStatusTip(tr("Create a new text file")); connect(newAct, SIGNAL(activated()), this, SLOT(newFile())); とする。 メニューバーの設定メニューバーにはFileとEditの二つのメニューを設定するので、クラスのめんばーに QPopupMenu *fileMenu; QPopupMenu *editMenu; を加えておき、コンストラクタでファイルメニューにアクションを fileMenu = new QPopupMenu(this); newAct->addTo(fileMenu); openAct->addTo(fileMenu); saveAct->addTo(fileMenu); saveAsAct->addTo(fileMenu); fileMenu->insertSeparator(); //区切りを入れる exitAct->addTo(fileMenu); と設定する。同じようにエディットメニューなども設定する。そして最後に menuBar()->insertItem(tr("&File"), fileMenu); menuBar()->insertItem(tr("&Edit"), editMenu); としてメニューバーにFileとEditを追加する。 ツールバーの設定ツールバーの設定もメニューバーの設定とほとんど同じで、クラスのめんばーに QToolBar *fileToolBar; QToolBar *editToolBar; を持っておき、コンストラクタで fileToolBar = new QToolBar(tr("File"), this); newAct->addTo(fileToolBar); openAct->addTo(fileToolBar); saveAct->addTo(fileToolBar); とする。 プログラム作成したプログラムを以下に示す. できあがったアプリケーションは以下の図ようになる. |