使用 PySide6 擴充

JEditor 基於 PySide6(Qt for Python)打造,您可以透過自訂的 Qt 元件 新增分頁或停靠面板來擴充編輯器。

新增自訂分頁

使用 EDITOR_EXTEND_TAB 字典將自訂元件註冊為編輯器中的新分頁。 鍵值為分頁名稱,值為元件類別(非實例)。

範例:

from PySide6.QtWidgets import QWidget, QGridLayout, QLineEdit, QPushButton, QLabel
from je_editor import start_editor, EDITOR_EXTEND_TAB


class TestUI(QWidget):
    """一個簡單的自訂元件,包含文字輸入欄和提交按鈕。"""

    def __init__(self):
        super().__init__()
        self.grid_layout = QGridLayout(self)
        self.grid_layout.setContentsMargins(0, 0, 0, 0)

        self.label = QLabel("")
        self.line_edit = QLineEdit()
        self.submit_button = QPushButton("Submit")
        self.submit_button.clicked.connect(self.show_input_text)

        self.grid_layout.addWidget(self.label, 0, 0)
        self.grid_layout.addWidget(self.line_edit, 1, 0)
        self.grid_layout.addWidget(self.submit_button, 2, 0)

    def show_input_text(self):
        self.label.setText(self.line_edit.text())


# 註冊自訂分頁:{"分頁名稱": 元件類別}
EDITOR_EXTEND_TAB.update({"test": TestUI})

# 啟動帶有自訂分頁的編輯器
start_editor()

執行此腳本後,JEditor 將在預設分頁旁邊新增一個 “test” ���頁。

運作原理

  1. EDITOR_EXTEND_TAB 是一個將分頁名稱對應到元件類別的字典

  2. JEditor 在建構 UI 時會建立每個已註冊元件類別的實例

  3. 元件會作為新分頁加入到分頁列

  4. 您的元件可完整使用 PySide6/Qt 的功能

提示

  • 您的元件類別必須繼承自 ``QWidget``(或其子類別)

  • 使用佈局(QGridLayoutQVBoxLayout 等)實現響應式設計

  • 您可以透過公開 API 存取 JEditor 的內部元件

  • 可以多次呼叫 update() 或傳入包含多個項目的字典來註冊多個自訂分頁

使用 JEditor 元件

您也可以在自己的 PySide6 應用程式中使用 JEditor 的個別元件:

from je_editor import EditorWidget, MainBrowserWidget, FullEditorWidget
  • EditorWidget — 獨立的程式碼編輯器元件

  • FullEditorWidget — 完整的編輯器,包含行號和輸出面板

  • MainBrowserWidget — 獨立的網頁瀏覽器元件

這些元件可以加入任何 PySide6 佈局,方便將程式碼編輯或瀏覽功能 整合到您自己的應用程式中。