4

基本的な機能がほとんどない単純なテキスト エディターをコーディングしています。現時点ではQMainWindowwithQTabWidgetセットのままcentralWidgetです。私が今実装しているのは、いくつかのショートカットです。ctrl+s保存、ctrl+o開く、ctrl+t/ctrl+w新しいタブを作成する/現在のタブを閉じる。

私はすべての機能を実装する方法を知っていますが、問題は機能をどこに実装するかです。すべてのショートカットをメンバーにQMainWindowして、すべてを処理させる必要がありますか、それともショートカットを対応するクラスに分離してみる必要がありますか? たとえば、新しいタブ ( ctrl+t) の作成は の一部になりQTabWidgetます。さて、ctrl+s(保存、当然)はQTextEditどうですか、それは私が保存しているテキストなので、それの一部である必要がありますか..?

基本的に、私のプログラムには 3 つのクラスが含まれています。QMainWindowを含みQTabWidget、各タブはQTextEdit.

4

1 に答える 1

3

あなたのセットアップは、私が構築した多くのアプリケーションによく似ています。

私は通常、メソッドを介してショートカットを処理するので、オブジェクトQAction::setShortcut()をどこに格納するのが理にかなっているのかが重要です。QAction多くのアクションはすべて MainWindw のメニューで使用されるため、これは通常、私の MainWindow クラスになります。これらのアクションがトリガーされると、通常は TabWidget が通知され、必要なすべてのタブに通知され、保存プロンプトを 1 つだけトリガーする「すべて閉じる」アクションなどを処理できます。

QActionただし、これらの s を MainWindow オブジェクトに保存する意味がない場合は、保存しません。通常、個々のタブで使用できるコンテキスト メニューの場合と同様です。

それが役立つことを願っています。

于 2013-07-03T13:16:45.787 に答える