2017-03-28 1 views
0

私はQStringで、テキストの内容を動的にロードされqplaintexteditを持っています。clear option t qplaintexteditを追加するには?

私たちは右qplaintexteditをクリックすると表示されるメニューにオプションを追加したいです。私はどのように私は自分のメニュー項目をデフォルトのメニュー項目に追加できるようにプログラムでそれを行うことができますか?任意のアイデアをいただければ幸いです。

答えて

1

をあなたはQPlainTextEditをsublcassと方法contextMenuEvent(QContextMenuEvent *event)を再実装することができます。または、QPlainTextEditにイベントフィルタを追加し、QContextMenuEventをキャッチすることもできます。あなたの実装で

、あなたはテキスト編集のデフォルトのメニューを作成するQMenu *QPlainTextEdit::createStandardContextMenu(const QPoint &position)を呼び出し、よりそれにカスタム項目を追加することができます。

例(サブクラス):

void MyTextEdit::contextMenuEvent(QContextMenuEvent *event) 
{ 
    QMenu* menu = createStandardContextMenu(event->pos()); 
    QAction* clearAction = menu->addAction("Clear"); 
    QAction* choosedAction = menu->exec(event->globalPos()); 
    //... 
    delete menu; 
} 

参照:

+0

私はドラッグアンドドロップを使用してqplaintexteditボックスを作ってきました。 –

+0

全体をプログラムで作成していれば、あなたのソリューションは実行可能になります。 –

+0

@Sumeet - ドラッグ&ドロップでQt Designerを使用することを意味しますか?もしそうなら、あなたは 'MyTextEdit'にあなたの' QPlainTextEdit'をオンにするデザイナーのコンテキストメニューに「推進ウィジェットを...」使用することができます。もちろん、 'MyTextEdit'を実装する必要があります。私はそれを行う場合は、すべてのコンストラクタが変更されるため –

関連する問題