前回の続きです。
QPopupMenuコンポーネントを使用します。
ツールパレットからQPopupMenuコンポーネントを選択し、フォームに配置します。
オブジェクトインスペクタでQPopupMenu1のImagesプロパティを「ImageList1」に設定します。
QMainMenu1のメニューの項目を、QPopupMenu1にコピーします。
オブジェクトインスペクタでQMainMenu1のItemsプロパティの値をコピーします。
オブジェクトインスペクタでQPopupMenu1のItemsプロパティの値に貼り付けます。
ツールパレットからQButtonを選択し、フォームに配置します。
オブジェクトインスペクタでQButton1のPopupMenuプロパティを「QPopupMenu1」に設定します。
メニューの「実行」-「実行」を選択して実行します。
ボタンを右クリックすると、ポップアップメニューが表示されます。
QPopupMenu1にOnClickイベントを追加します。
QPopupMenu1Click関数が作成されます。
QPopupMenu1Click関数の処理を記述します。
function QPopupMenu1Click($sender, $params)
{
var_dump($params);
}
メニューの「実行」-「実行」を選択して実行します。
メニューの「開く」「閉じる」をクリックします。
「開く」をクリックしたときの出力。
array
'tag' => string '1' (length=1)
「閉じる」をクリックしたときの出力。
array
'tag' => string '2' (length=1)
QPopupMenu1にJavaScriptのOnClickイベントを追加します。
QPopupMenu1JSClick関数が作成されます。
QPopupMenu1JSClick関数の処理を記述します。
function QPopupMenu1JSClick($sender, $params)
{
?>
//begin js
tag=event.getTarget().tag;
alert(tag);
//end
<?php
}
メニューの「実行」-「実行」を選択して実行します。
メニューの「開く」「閉じる」をクリックします。
「開く」をクリックしたとき、Tagの値である「1」が出力されます。
「閉じる」をクリックしたとき、Tagの値である「2」が出力されます。
以上です。
DelphiやC++Builderと同じような操作感でメインメニューやポップアップメニューを簡単に作成することができました。
作成されたメインメニューやポップアップメニューも、Windowsアプリケーションと同じように操作することができます。
Pingback: RadPHP XEのQMainMenuコンポーネントとQPopupMenuコンポーネントを使ってみた(前編) « 山本隆の開発日誌