Xác định mô tả tham số cho Python Toolbox giúp đỡ?


14

Tôi đang cố gắng tạo một số Hộp công cụ Python cho ứng dụng ArcMap của chúng tôi (ví dụ: MyTool.pyt)

Tôi có thể thấy rằng văn bản trợ giúp được xác định với thuộc tính self.des mô tả lớp.

Tuy nhiên, một khi tôi chạy chương trình và nhấp vào bất kỳ trường tham số nào, văn bản trợ giúp / mô tả sẽ trống rỗng. Tôi muốn có thể cung cấp trường mô tả cho từng tham số. Làm thế nào là điều này được thực hiện?

Sau một số phản hồi, tôi thấy rằng thông qua menu ngữ cảnh nhấp chuột phải của 'Mô tả mục', có nhiều trường có thể được điền. Có cách nào "pythonic" để làm điều này không? Đó là, chỉ bằng cách nhúng một số thuộc tính trong các lớp tệp .pyt?

Chẳng hạn, trong định nghĩa hộp công cụ .pyt, bạn có lớp Hộp công cụ:

import arcpy

class Toolbox(object):
    def __init__(self):
        """Define the toolbox (the name of the toolbox is the name of the
        .pyt file)."""
        self.label = "My Toolbox"
        self.alias = ""

        # List of tool classes associated with this toolbox
        self.tools = [MyNiceTool]


class MyNiceTool(object):
    def __init__(self):
        """Define the tool (tool name is the name of the class)."""
        self.label = "My Tool Class"
        self.description = """
A description that shows up in the help context side pane when the tool is launched.
        """
        self.canRunInBackground = True

    def rest_of_required_methods....

Từ chuỗi self.des mô tả, cửa sổ trợ giúp hộp thoại Tool sẽ hiển thị văn bản này. Tuy nhiên, điều tôi muốn làm là có một 'mô tả' được nhúng trong mã của tôi cho từng tham số, để khi công cụ được khởi chạy và người dùng nhấp vào trường tham số, mô tả tham số được hiển thị. Nếu tôi thực hiện điều này bằng phương pháp 'Mô tả mục' được tham chiếu trong các câu trả lời bên dưới, tôi sẽ chỉnh sửa các trường Giải thích hộp thoại trong phần Cú pháp cho từng tham số ... Tôi đoán.

Câu trả lời:


16

Tôi có thể thấy rằng văn bản trợ giúp được xác định với thuộc tính self.des mô tả lớp.

Đây là nơi bạn đang đi sai. Trong trang trợ giúp Tài liệu về một công cụ trong hộp công cụ Python có ghi:

Đối với các hộp công cụ Python, tài liệu cho hộp công cụ và công cụ được lưu trữ trong các tệp .xml được liên kết với hộp công cụ và các công cụ theo tên. Trợ giúp cho mỗi công cụ sẽ được lưu trữ trong một tệp .xml riêng.

Điều này có nghĩa là bạn không thể đặt văn bản trợ giúp từ chính tệp .pyt. Điều này có ý nghĩa khi bạn xem xét rằng văn bản trợ giúp không phải là ASCII đơn giản mà là văn bản phong phú có thể bao gồm định dạng, dấu đầu dòng và hình ảnh.

May mắn thay, Python hỗ trợ đọc và viết XML , do đó bạn có thể tự động chỉnh sửa văn bản trợ giúp từ một tập lệnh riêng biệt.


2
Cảm ơn liên kết đến trang trợ giúp 'Tài liệu' .. Tôi đã tìm kiếm, nhưng vì một số lý do đã không đến trang đó. Sẽ thật tuyệt nếu ESRI hỗ trợ tái cấu trúc. Sau đó, chúng ta có thể ghi lại các hộp công cụ từ mã trực tiếp như người ta có thể sử dụng Sphinx.
Giăng

"bạn sẽ có thể tự động chỉnh sửa văn bản trợ giúp từ một tập lệnh riêng biệt." -> Điều đó sẽ rất mong muốn .. có ai đã phát triển một công cụ cho việc này chưa?
Ratnanil

13

Bạn có thể xác định tin nhắn cho từng tham số bằng cách làm theo các bước sau:

  1. Mở ArcCatalog và tô sáng Script trong cây danh mục
  2. Chọn tab Mô tả
  3. Nhấp vào nút Chỉnh sửa
  4. Nhấp vào mũi tên xuống bên cạnh mỗi tham số và nhập tin nhắn
  5. Cuối cùng, lưu các chỉnh sửa bằng cách nhấp vào nút Lưu

Khi người dùng nhấp vào trong một tham số tập lệnh, họ sẽ thấy tin nhắn của bạn.


4
Cảm ơn .. bạn có biết thông tin này cuối cùng được lưu ở đâu không? Nó có được ghi vào các tệp xml dường như được tạo trong thư mục nơi tôi đặt tệp .pyt không?
Giăng

11

Nếu tôi hiểu chính xác, bạn muốn thêm văn bản Trợ giúp vào các chức năng của mình. Điều đó có thể được thực hiện bằng cách nhấp chuột phải vào công cụ của bạn từ cửa sổ hộp công cụ và nhấp vào Mô tả mục và sau đó Chỉnh sửa ở trên cùng. Nó sẽ cho phép bạn thêm một mô tả cho từng tham số, nó sẽ hiển thị trong phần trợ giúp khi nhấp vào tham số.

Nếu bạn đang ở Arcmap 10.0 (ít nhất là SP sớm hơn), bạn cần thực hiện việc này từ cửa sổ ArcCatalog (duyệt đến hộp công cụ của bạn) trong Arcmap để nó hoạt động.


Cảm ơn, điều này là hữu ích, và nó thực sự là một giải pháp. Trong thực tế, nó mở ra một loạt các câu hỏi mới cho tôi! Tôi đã không nhận ra về tất cả các trường 'Mô tả Mục' này, vì tôi chỉ làm việc với các hộp công cụ thông qua các tệp Hộp công cụ Python (.pyt) trong 10.1. Thật không may, nó không hoàn toàn như những gì tôi đã theo đuổi, mặc dù vậy ... vì vậy tôi sẽ chỉnh sửa câu hỏi của mình ngay bây giờ.
Giăng

2

Bạn chỉ cần nhấp vào chỉnh sửa siêu dữ liệu của công cụ bạn sẽ thấy rằng với mỗi tham số bạn có thể dễ dàng chỉnh sửa các thông báo sẽ hiển thị.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.