-
-
Notifications
You must be signed in to change notification settings - Fork 1
Keyboard Shortcuts JP
このページは、MoleditPy のメインウィンドウ (ui/main_window_init.py) と 2D エディタの keyPressEvent ハンドラ (ui/molecular_scene_handler.py、キーマップ定義は ui/molecule_scene.py) に実装されている、すべてのキーボードショートカットの完全なリファレンスです。既存の Shortcut-* ページは デスクトップのランチャーアイコン(.exe へのファイル関連付けなど)を作成する方法についてのページであり、本ページとはまったく別の話題なので混同しないでください。
プラグインも context.add_menu_action(path, callback, shortcut=...)(ui/plugin_menu_manager.py 参照)で独自のショートカットを登録できます。これらは導入しているプラグインによって変わるため本ページには含まれません — Plugin メニューの各項目にショートカットが割り当てられていれば、項目名の横に表示されます。
これらは 2D シーンの keyPressEvent が直接処理しており、マウスカーソルが 2D キャンバス上にある場合(選択に基づく操作の場合は選択中のアイテムがある場合)にのみ発火します。ほとんどのキーは マウスカーソルの直下にある原子/結合 に作用し、なければ現在の選択範囲に作用します。
カーソルが原子の上にあれば、以下のキーでその場で元素を変更します。カーソルが空白キャンバス上にあれば、同じキーで「この元素を配置する」描画モードに切り替わります。
| キー | 元素 |
|---|---|
C |
炭素 |
N |
窒素 |
O |
酸素 |
S |
硫黄 |
F |
フッ素 |
B |
ホウ素 |
I |
ヨウ素 |
H |
水素 |
P |
リン |
Shift+C
|
塩素 (Cl) |
Shift+B
|
臭素 (Br) |
Shift+S
|
ケイ素 (Si) |
1本以上の結合が選択されているか、カーソルが結合上にホバーしていれば、これらのキーでその次数/立体表示を変更します。結合はデータモデル内の (atom1_id, atom2_id) を双方向で照合して特定されます。
| キー | 効果 |
|---|---|
1 |
単結合にする(立体表示はクリア) |
2 |
二重結合にする(立体表示はクリア) |
3 |
三重結合にする(立体表示はクリア) |
W |
くさび形(Wedge)立体結合にする(既にくさび形の結合にもう一度押すと、始点/終点原子を入れ替えて向きを反転) |
D |
破線(Dash)立体結合にする(同様に、もう一度押すと向きを反転) |
Z |
ホバー中の二重結合のみ対象:Z(シス)配置にする |
E |
ホバー中の二重結合のみ対象:E(トランス)配置にする |
対象となる結合がない場合、1/2/3 は §1.3(現在の原子から新規原子・結合を追加する処理)にフォールスルーします。
カーソルが原子上にある(または原子が1つだけ選択されている)状態で、かつ §1.2 の対象となる結合がない場合、1/2/3 はその原子からその次数の新しい結合を作成します:スナップ許容範囲(設定 bond_snapping_distance_2d、既定値 14.0 px)内に既存の原子が見つかればそれに結合し、なければ計算された位置に新しい炭素原子を作成して結合します。単結合・二重結合の連続配置では配置方向(時計回り/反時計回り)が交互に切り替わり、自然なジグザグ形状になります(三重結合ではこの交互切り替えは行われません)。
| キー | 効果 |
|---|---|
+ |
形式電荷を +1 |
- |
形式電荷を -1 |
.(ピリオド) |
ラジカル電子数を 0 → 1 → 2 → 0 の順に循環 |
選択があればすべての選択中 AtomItem に、なければカーソル下の原子に適用されます。
| キー | 効果 |
|---|---|
4 |
カーソルが既存の原子または結合の上にある場合:ベンゼン環テンプレートをドラッグしたときと同じライブプレビューの幾何計算で、その場に一発でベンゼン環を配置(融合)します。カーソルが空白キャンバス上にある場合:現在のモードをベンゼン環テンプレート配置モードに切り替えます(テンプレートツールバーのベンゼンボタンをクリックしたのと同じ)。 |
| キー | 効果 |
|---|---|
Delete / Backspace
|
結合を描画中(一時的なラバーバンド線が表示されている状態)であれば、そのドラッグ操作をキャンセルします。それ以外の場合、選択中のすべての原子・結合と、カーソル下のアイテム(あれば)を削除します。これによりキャンバスが空になった場合、シーン全体をクリアして再初期化します。 |
| キー | 効果 |
|---|---|
Space |
選択モードでない場合:選択モードに切り替えます。すでに選択モードの場合:すべての原子・結合を選択します(Edit ▸ Select All と同じ)。 |
上記のいずれにも該当せず、かつ Shift 以外の修飾キーが押されていない場合、元素キー(§1.1)や結合次数キーは、カーソル下の対象に作用する代わりに 以後のクリックのための描画モード を切り替えます — これが、何も選択されておらずカーソルが原子上にもないときの 1/2/3 の挙動です。
内部的には生のキー→結合モードのマップ(ui/molecule_scene.py の key_to_bond_mode_map)に、さらに 4 → Wedge、5 → Dash へのモード切り替えエントリが定義されています。4 は実際には到達不能です(§1.5 のベンゼンワンショット処理が先に横取りするため)が、5 は実際に機能します:修飾キーなしで、かつ結合/原子ターゲットがこのキーを先に消費しなければ、5 キーを押すと現在の描画モードが破線結合(Dash)配置に切り替わります。これはどのツールバーボタンのショートカット表示にも出ていません — 単なる裸のキー入力としてのみ機能します。
環テンプレートを配置する際(またはライブプレビューを移動する際)に Alt を押しておくと、テンプレートプレビューを既存の結合上にドロップしたときに通常発動する自動的な二重結合/融合調整ロジック(設定 template_fusing_enabled_2d)が抑制されます。これは単独のショートカットではなく、ドラッグ中に押しておく修飾キーです。
これらは標準の QAction ショートカットで、(2D キャンバスに限定されず)メインウィンドウのどこでも有効です。
| ショートカット | アクション |
|---|---|
Ctrl+N |
新規作成 |
Ctrl+O |
プロジェクトを開く... |
Ctrl+S |
プロジェクトを保存 |
Ctrl+Shift+S |
プロジェクトに名前を付けて保存... |
Ctrl+Q |
終了 |
(インポート/エクスポートのサブメニュー — MOL/SDF、SMILES、InChI、3D MOL/XYZ、PME Raw、PNG/SVG、STL、OBJ/MTL — にはショートカットが ありません。メニューからのみアクセスできます。)
| ショートカット | アクション |
|---|---|
Ctrl+Z(プラットフォーム標準の Undo) |
元に戻す |
プラットフォーム標準の Redo(Windows では Ctrl+Y、macOS/Linux では Ctrl+Shift+Z) |
やり直し |
Ctrl+X(プラットフォーム標準の Cut) |
切り取り |
Ctrl+C(プラットフォーム標準の Copy) |
コピー |
Ctrl+V(プラットフォーム標準の Paste) |
貼り付け |
Ctrl+R |
2D を回転...(2D 回転ダイアログを開く) |
Ctrl+J |
2D をクリーンアップ(Edit ▸ Clean Up 2D、RDKit の Compute2DCoords による再レイアウト) |
Ctrl+K |
2D を 3D に変換 |
Ctrl+L |
3D を最適化 |
Ctrl+A(プラットフォーム標準の SelectAll) |
すべて選択 |
Ctrl+Shift+C |
すべてクリア |
Add Hydrogens(水素を追加)と Remove Hydrogens(水素を削除)にはショートカットがありません。
注意: 3D カメラのリセットのショートカットは View メニューの
Ctrl+Shift+Rです(下記参照)。Ctrl+Rではありません —Ctrl+Rは「2D を回転...」です。MoleditPy の古いドキュメント(4.x 以前)ではCtrl+Rが「Reset 3D View」と記載されている場合がありますが、これはその後Ctrl+Shift+Rに移動しています。
| ショートカット | アクション |
|---|---|
プラットフォーム標準の ZoomIn(通常 Ctrl++) |
ズームイン — 2D ビューを ×1.2 に拡大 |
プラットフォーム標準の ZoomOut(通常 Ctrl+-) |
ズームアウト — 2D ビューを ÷1.2 に縮小 |
Ctrl+0 |
ズームをリセット — 2D ビューの変換を固定の 0.75 倍にリセット |
Ctrl+9 |
ビューに合わせる — 表示中の 2D シーンのすべてのアイテムをビューポートに収める(シーンが空の場合はズームリセットにフォールバック) |
Ctrl+Shift+R |
3D ビューをリセット — 3D ビューの plotter.reset_camera() を呼び出す |
Ctrl+1 |
パネルレイアウト:均等(50:50) |
Ctrl+2 |
パネルレイアウト:2D フォーカス(70:30) |
Ctrl+3 |
パネルレイアウト:3D フォーカス(30:70) |
Ctrl+H |
2D パネルの表示/非表示切り替え |
Redraw 3D Molecule(3D 分子を再描画)、キラルラベルの表示切り替え、原子情報表示のサブメニュー(Show Index / Original ID / XYZ Index / Coordinates / Element Symbol)、0-based/1-based インデックス切り替えにはショートカットがありません。
Analysis メニュー(Show Analysis...)、3D Edit メニュー(Translation...、Move Selected Atoms...、Move Group...、Align to ▸ Axis/Plane、Mirror...、Planarize...、Adjust Bond Length/Angle/Dihedral Angle...、Constrained Optimization...)、Plugin ▸ Plugin Manager...、Settings メニュー、Help メニュー(About、GitHub、GitHub Wiki、User Manual)のいずれの項目にもキーボードショートカットは割り当てられていません — メニューからのみ実行できます。Reset All Settings も同様にメニュー専用です。
厳密には「キーボードショートカット」ではありませんが、上記としばしば混同されるため 3D ビュー側の対応表としてここに記載します。
| 入力 | 効果 |
|---|---|
| 左ドラッグ | 3D ビューを回転 |
マウスホイール / Ctrl+ホイール |
ズーム |
中ボタンドラッグ、または Shift+左ドラッグ |
パン(移動) |
| ツールバーの 3D Select トグル | 原子ピッキング/測定モードに入る(2/3/4原子選択で距離/角度/二面角を表示)。ショートカットはなくツールバーボタンのみ |
ツールバーの 3D Drag トグル、または Alt 押しっぱなし
|
3D 原子ドラッグモードに入る(または Alt を押している間だけ一時的に入る):3D ビュー内で原子をクリックドラッグして移動し、接続されているすべての部分も一緒に動かす |
-
keyPressEvent内でショートカットは厳密な優先順位で消費されます:ベンゼンワンショット(4)→ ラジカル(.)→ 電荷(+/-)→ 原子記号変更 → 結合次数/立体表示変更 → ホバー時の Z/E → 結合次数からの新規原子追加 → 削除/キャンセル →Space→ グローバルモード切り替え。想定より前段のルールにキーを消費されることがあります — 例えば結合が選択されている場合、1/2/3は常にその結合の次数変更を優先し、新しい原子の追加にはなりません。 - 2D エディタのキー処理はすべて、2D パネルが編集可能な状態(
ui_manager.is_2d_editable)であることが前提です。Import ▸ 3D MOL/SDFや3D XYZ(2D エディタをクリアする)で 3D ビューア専用モードに入ると、新しい 2D 構造の作成を始めるまでこれらのキーは反応しなくなります。 - 標準キー系のショートカット(
Undo、Redo、Cut、Copy、Paste、SelectAll、ZoomIn、ZoomOut)は Qt のQKeySequence.StandardKeyを通じて解決されるため、実際のキーの組み合わせはハードコードされておらず OS の慣習に従います(例:macOS ではCtrlの代わりにCmd)。
- User Manual — これらのショートカットが呼び出す機能の完全な解説
- File Formats and Import/Export — ショートカットのない各 Import/Export メニュー項目が実際に行うこと
- Creating shortcut on Windows / macOS / Linux — デスクトップのランチャーアイコンについてのページで、本ページとは無関係です