明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1586|回复: 5

求工具箱面板修改方法

[复制链接]
发表于 2020-8-8 11:33 | 显示全部楼层 |阅读模式
以下这个工具箱面板是在论坛里找到的,就是按钮的长度太长(按钮上文字前后的空距太大),修改了width=10也不起作用,不知道应该怎么改,特来求助!!!



(defun c:ttt ()
(setq ln (list ;;这里是你要加载的程序
"G:\\面板\\程序1.lsp"
"G:\\面板\\程序2.lsp"
"G:\\面板\\程序3.lsp"
))
(mapcar '(lambda(x) (vl-catch-all-apply 'vl-load-all (list x))) ln)
  (make_panel
    (list
     (list "第一列" ;;第一列
            (list "程序1" "cx1") ;(list  按钮标签  运行的命令)
            (list "程序2" "cx2")
            (list "程序3" "cx3")
      );;第一列
      (list "第二列";第二列
            (list "功能名称" "命令快捷键") ;(list  按钮标签  运行的命令)
            (list "直线" "line")
      ) ;;第二列 复制时注意起止括号,LISP括号必须成对..
      (list "第三列";都可以自己修改
            (list "圆" "CIRCLE")
      )
    )
  )
  (princ)
)
(defun make_panel ( menulist / n num_nobut num_button nn nnn menuname val_lst add_dclrow tt order_lst in num_image)
  (defun add_dclrow ( dstr / ) (if dstr (setq val_lst (cons dstr val_lst))))
  (setq menuname (strcat (vl-filename-mktemp) "temp_pannel.dcl"));
  (setq rq (menucmd "M=$(edtime,$(getvar,date),YYYY年MO月DD日)"))
  (add_dclrow "curbutton:button{width=10;vertical_margin=none;vertical_margin=none;}")
  (add_dclrow "curimage:image{width=10;height=0.2;vertical_margin=none;vertical_margin=none;}")
  (add_dclrow "curpanel:dialog{label=\"我的面板\";alignment=centered;vertical_margin=none;horizontal_margin=none;")
  (add_dclrow "spacer;")
  (add_dclrow ":column{")
  (add_dclrow ":row{")
  (setq len (apply 'max (mapcar 'length menulist))
        order_lst (apply 'append (mapcar 'cdr menulist))
        num_button 0
        num_nobut 0
        in 0
        num_image 0
  )
  (foreach nn menulist
        (setq in 0)
        (add_dclrow (strcat " : boxed_column{label=\"" (car nn) "\";vertical_margin=none; horizontal_margin=none;"))
        (foreach nnn (cdr nn)
           (setq num_button (1+ num_button)
                 in (1+ in)
                 num_image (1+ num_image)
                 tt (car nnn)
                 tt (if tt tt "")
           )
           (add_dclrow (strcat ":curbutton{label=\"" tt "\";key=\"but" (itoa num_button) "\";}"))
           (if (= 4 in)
               (progn (add_dclrow (strcat ":curimage{key=\"ima" (itoa num_image) "\";}"))
                      (setq in 0)
               )
           )
        )
        (repeat (- len (length nn))
           (setq num_nobut (1+ num_nobut)
                 in (1+ in)
                 num_image (1+ num_image)
           )
           (add_dclrow (strcat " : curbutton{key=\"butno" (itoa num_nobut) "\";}"))
           (if (= 4 in)
               (progn (add_dclrow (strcat ":curimage{key=\"ima" (itoa num_image) "\";}"))
                      (setq in 0)
               )
           )
        )
        (add_dclrow "spacer;}")
  )
   (add_dclrow "}:button{label=\"关闭\";key=\"cancel\";is_cancel=true;width=10;fixed_width=true;alignment=centered;}}")
   (add_dclrow (strcat ":concatenation {:text_part {label=\"作者:QQ690779088 今日日期:\";}:text {width=12;label=\"" rq "\";}:text_part{label=\" \";}}}"))
   (vl-file-delete menuname)
   (setq nn (open menuname "w"))
   (foreach n (reverse val_lst) (write-line n nn))
   (close nn)
   (setq nnn (load_dialog menuname))
   (if (not (new_dialog "curpanel" nnn)) (exit))
   (setq n 0)
   (repeat num_nobut (mode_tile (strcat "butno" (itoa num_nobut)) 1) (setq num_nobut (1- num_nobut)))
  (foreach nn menulist
        (foreach nnn (cdr nn)
           (setq n (1+ n)
                 tt (car nnn)
                 tt (if tt tt "")
           )
           (if (= tt "")
               (mode_tile (strcat "but" (itoa n)) 1)
               (action_tile (strcat "but" (itoa n)) (strcat "\(done_dialog " (itoa n) "\)"))
           )
        )
  )
   (setq nn (start_dialog))
   (unload_dialog nnn)
   (vl-file-delete menuname)
  (if (> nn 0)
       (progn (setq tt (cadr (nth (1- nn) order_lst)))
              (princ "\n")
              (if (= (eval (read (strcat "(type c:" tt ")"))) 'SUBR)
                  (eval (read (strcat "(c:" tt ")")))
                  (vl-cmdf tt)
              )
       )
   )
)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2020-8-8 12:22 | 显示全部楼层
本帖最后由 kongel 于 2020-8-8 12:24 编辑

加上这么一句  fixed_width=true;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2020-8-8 13:04 | 显示全部楼层
本帖最后由 huxu823 于 2020-8-8 13:06 编辑
kongel 发表于 2020-8-8 12:22
加上这么一句  fixed_width=true;

加了fixed_width=true
按钮上的文字如果长度不一样,会导致按钮长度也不一样,如下图:


有没有不管文字长度有没有差别,按钮长度是统一长度的办法?
因为我要写进去的按钮有点多,无法保证每一个按钮上的文字长度是完全一样的

点评

选个宽度最大值  发表于 2020-8-8 17:35
把宽度数字多试几下  发表于 2020-8-8 17:34
发表于 2020-8-9 15:37 | 显示全部楼层
短的加空格使文字一样长
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-13 05:13 , Processed in 0.142030 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表