2014-07-20 2 views
2

Qt 메뉴 사용자 지정을 구현하려고하는데 같은 RMB 컨텍스트 메뉴에서 두 번 이상 같은 QAction을 추가하는 기능을 제공하고 있습니다. 내가 수행하려고 할 때 :동일한 QMenu에 QAction을 두 개 이상 추가하려면 어떻게합니까?

myMenu->addAction(myAction); 
myMenu->addAction(myAction); 

두 번 QAction 추가 QAction 하나의 인스턴스 만 메뉴에 나타납니다. QAction의 인스턴스가 둘 이상 존재하지 않는 이유는 무엇입니까? 이것을 달성하기위한 트릭이 있습니까? 이전 작업의 모든 장점으로 새로운 작업을 만들고 복제하려고했습니다. 하지만 QActionsSENDERMEMBER 속성을 가져 오거나 추출하는 방법을 알지 못합니다.

+1

왜 처음부터이 작업을 수행 했습니까? – lpapp

+0

가장 최근의 QT 사용법 (약 2 년 전)을 기억하는 한 QActions는 의미 론적 동작이므로 QT는 여러 메뉴 버튼이 똑같은 일을하기를 원하지 않기 때문에이 작업을 수행하지 못하게합니다. 각 버튼에 대해 여러 개의 액션을 만들 수 있습니다 (하지만 먼저 개념을 다시 생각해보십시오. 실제로 수행하고 싶지 않은 작업을하는 것처럼 보입니다).) 또는 QAction과 다른 무언가를 사용할 수도 있습니다 (나는 그렇지 않습니다. 확실히 알 겠지만, 임의의'QMenuItem' 클래스가 있다고 생각합니다.). – nonchip

+0

+1 @FinalContest : 여기에서 'QAction'의 의미를 오해하고있을 가능성이 높으므로 지금하고있는 일에 대해 설명하십시오. 메뉴가 어떻게 보이고, 다른 버튼이 무엇을해야하며, 당신이 질문 한 'QActions'는 무엇입니까? 사실 – nonchip

답변

1

이것은 신중한 결정입니다. 그것에 대해 documentation를 참조하십시오

는 QWidget은 각 작업 중 하나를해야하고 이미 가지고 작업을 추가하면 동일한 작업이 두 번 위젯에있을 발생하지 않습니다.

이유는 아마도이 경우가 없거나 또는 대다수가 원했던 부분을 다루지 않았기 때문일 수 있습니다.

MS Outlook에서 허용하고 사용자가 모방하려고하는 귀하의 의견을 바탕으로 동일한 메뉴에 동일한 작업을 다시 추가하려고 할 때 사용자에게 경고하는 방식을 개인적으로 취합니다.

관련 문제