2016-08-19 1 views
1

私は問題があります。 は私の*の.cppファイルでは、私は次の関数があります。QVariant引数から変換するときにメソッドのオーバーロードを選択するにはどうすればよいですか?

void QcWMenuBar::setItems(const QVariantList & items) 
{ 
    clear(); 
    Q_FOREACH(const QVariant & item, items) 
    //addMenu(item); 
} 

をQtには、多くの異なるaddMenu()関数を持っているので、私のプログラムは、QVariantタイプの場合に使用する機能を知りません。 この場合はaddMenu(QMenu * item)が必要です。

Qtにこの機能を使用するように指示するにはどうすればよいですか?あなたがバリアントから正しい型の値を取得する必要があり

+0

_は_「Qtは、多くの異なるaddMenu()関数を持っています」。これは、可能性のあるシナリオや使用例が数多くあるためです。あなたの要件、それらの項目(テキスト、数字、アイコンなど)は何ですか、後でメニュー項目がトリガーされるときに何をする必要があるのか​​を説明してください... – mvidelgauz

+0

私はオーディオプログラミング言語SuperCollider 。 –

+2

申し訳ありませんが、私が尋ねたものとあなたが何を答えたかのコアレーションを見つけるのに長い時間がかかります... – mvidelgauz

答えて

2

: - 、さらに `addAction`機能

void QcWMenuBar::setItems(const QVariantList & items) 
{ 
    clear(); 
    for (auto & item: items) { 
    Q_ASSERT(item.canConvert<QMenu*>()); 
    addMenu(item.value<QMenu*>()); 
    } 
} 
関連する問題