
Hiện/ẩn và bật/tắt block theo lựa chọn: hộp thoại động cho Toggle và Enumeration
#Python#Block UI Styler1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Hộp thoại gọn khi chỉ hiện ô cần thiết: chọn kiểu lỗ 'ren' thì hiện ô bước ren, kiểu 'trơn' thì ẩn đi. Mọi block có thuộc tính Show và Enable để điều khiển.
Hiện/ẩn và bật/tắt block theo lựa chọnCác bước thực hiện
- Xác định ô điều khiển. Toggle hoặc Enumeration.
- Trong update callback. So sánh block được truyền vào.
- Đặt Show/Enable. block.Show = True/False; block.Enable = True/False.
- Đặt trạng thái ban đầu. Trong initialize callback.
- Giữ nhất quán. Hàm một nơi cập nhật mọi phụ thuộc.
Code tham khảo (Python)
import NXOpen import NXOpen.BlockStyler class HopThoaiDong: def __init__(self, duong_dan_dlx): self.ui = NXOpen.UI.GetUI() self.hop_thoai = self.ui.CreateDialog(duong_dan_dlx) self.hop_thoai.AddInitializeHandler(self.khoi_tao) self.hop_thoai.AddUpdateHandler(self.cap_nhat) def khoi_tao(self): goc = self.hop_thoai.TopBlock self.kieu_lo = goc.FindBlock("enum_kieu_lo") self.buoc_ren = goc.FindBlock("double_buoc_ren") self.co_vat_mep = goc.FindBlock("toggle_vat_mep") self.vat_mep = goc.FindBlock("double_vat_mep") self.ap_dung_phu_thuoc() def ap_dung_phu_thuoc(self): la_ren = self.kieu_lo.ValueAsString == "Ren" self.buoc_ren.Show = la_ren # chỉ hiện khi chọn lỗ ren self.vat_mep.Enable = bool(self.co_vat_mep.Value) # chỉ nhập được khi bật vát mép def cap_nhat(self, block): if block in (self.kieu_lo, self.co_vat_mep): self.ap_dung_phu_thuoc() return 0 def hien_thi(self): try: return self.hop_thoai.Show() finally: self.hop_thoai.Dispose()Giải thích code
Showquyết định block có hiện không;Enablequyết định có nhập được không.- Gom mọi logic phụ thuộc vào
ap_dung_phu_thuocgiúp gọi được ở cả lúc khởi tạo lẫn khi cập nhật. - Callback
cap_nhatnhận block vừa thay đổi; so sánh bằng==hoặcinvới tập block liên quan.
Lỗi thường gặp
- Nhãn của Enumeration (
"Ren") phải khớp chính xác với chuỗi trong .dlx, kể cả dấu và hoa thường. - Ẩn block làm hộp thoại co lại; thiết kế bố cục sao cho nhảy kích thước không gây khó chịu.
Code mang tính tham khảo, viết cho NX 12 trở lên (Python journal). Tên menu và một số lớp có thể khác theo phiên bản NX; hãy chạy thử trên bản sao của chi tiết trước khi dùng cho dữ liệu thật.
Điểm: 0
Trả lời
Đăng nhập để tham gia thảo luận.