2013-07-03 4 views
4

몇 가지 기본 기능 만 갖춘 간단한 텍스트 편집기를 코딩하고 있습니다. 지금은 QMainWindow이고 QTabWidgetcentralWidget으로 설정되어 있습니다. 지금 구현하고있는 것은 바로 가기입니다. ctrl+s을 저장하려면 ctrl+o을 열고, 새 탭을 만들거나 현재 탭을 닫으려면 ctrl+t/ctrl+w을 입력하십시오.바로 가기를 처리해야하는 클래스는 무엇입니까?

나는 모든 기능을 구현하는 방법을 알고 있지만 질문은 인데,은 기능을 구현할 수 있습니까? 모든 바로 가기가 QMainWindow의 구성원이어야하며 모든 작업을 처리하도록하거나 해당 바로 가기를 해당 클래스로 분리해야합니까? 예를 들어 새 탭 (ctrl+t)을 만들면 QTabWidget 부분이됩니다. 이제 ctrl+s (save, duh)은 QTextEdit의 일부 여야하며, 내가 저장하는 텍스트이기 때문에 .. 또는?

기본적으로 내 프로그램에는 세 가지 클래스가 있습니다. QMainWindow (QTabWidget 포함)이고 각 탭은 QTextEdit입니다.

답변

3

설치 프로그램은 내가 만든 많은 응용 프로그램과 비슷합니다.

나는 일반적으로 QAction::setShortcut() 메서드를 통해 바로 가기를 처리하므로 실제로 QAction 개체를 저장하는 것이 의미가 있습니다. MainWindw의 메뉴에는 많은 액션이 모두 사용되므로 대개 내 MainWindow 클래스가됩니다. 이러한 작업이 트리거되면 결과적으로 일반적으로 TabWidget에 알림이 표시되고 필요한 탭을 모두 알리고 하나의 저장 프롬프트를 트리거하는 "모두 닫기"액션과 같은 작업을 처리 할 수 ​​있습니다.

그러나 MainWindow 객체에 해당 QAction을 저장하는 것이 의미가 없으면 일반적으로 개별 탭에서 사용할 수있는 상황에 맞는 메뉴의 경우처럼 그렇지 않습니다.

희망이 있습니다.

+0

아니 ** ** 내가 무엇을했는지 알기에 충분하지만 내가 필요로하는 것을 실현하는 데 도움이되었다. ^^ 고마워, 이제 다 알아 냈어! –

관련 문제