乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 41|回复: 19

[编程交流] 需要适当间距的帮助

[复制链接]

7

主题

39

帖子

32

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 17:13:12 | 显示全部楼层 |阅读模式
你好
 
我有一个对话框例程,我需要帮助我在其中的项目间距,使它看起来很好和专业。它还没有做任何事情,我想先算出间距,似乎是目前为止更难的部分。我附上了一个zip文件,其中包含所有代码和图像文件(如果需要的话),以及对话框当前外观的图像。
 
感谢您的时间和关注,非常感谢!
 
起草人Joe
181313qw6004frr3my04tf.png
幻灯片图像。拉链
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:18:25 | 显示全部楼层
DCL对话框中的每个互动程序都需要一定的空间。标签较长的瓷砖需要更多的水平空间。平均来说,对话框顶行中的平铺更宽,使其成为决定对话框总宽度的行。在最底层有一个水平空间,用来将瓷砖隔开。
创建正确垂直对齐的唯一方法是为大多数瓷砖提供宽度和固定宽度属性,并将每个瓷砖的宽度基于具有最长标签的相同类型的瓷砖。
 
[列表=1]
  • 请记住,每个标签的右侧都会添加一个边距。此边距约为文本宽度的30%。选择短标签以避免较大的边距。
  • 尝试使用更多描述性键。像“eb5”这样的词不是很清楚,“circInCircDia1”是。
  • 我个人会去掉单选按钮,将图像转换为image\u按钮。或者我会使用没有标签的“收音机”。
    [/列表]
  • 回复

    使用道具 举报

    rlx

    21

    主题

    1505

    帖子

    1551

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    81
    发表于 2022-7-5 17:22:04 | 显示全部楼层
    怎么样:
     
     
     
     
     
    1. (defun c:tst ( / box_type dcl-id)
    2. (setq box_type "rectangle" dcl-id (load_dialog "SlideImage.DCL"))
    3. (new_dialog "Main_Dialog" dcl-id)(update_dialog)
    4. (action_tile "rb_rectangle" "(setq box_type "rectangle")(update_Dialog)")
    5. (action_tile "rb_rounded" "(setq box_type "rounded")(update_Dialog)")
    6. (action_tile "rb_circle1" "(setq box_type "circle1")(update_Dialog)")
    7. (action_tile "rb_circle2" "(setq box_type "circle2")(update_Dialog)")
    8. (action_tile "accept" "(done_dialog 1)")
    9. (action_tile "accept" "(done_dialog 0)")
    10. (start_dialog)
    11. (unload_dialog dcl-id)
    12. (princ)
    13. )
    14. (defun update_dialog ( / x y slide)
    15. (cond
    16.    ((= box_type "rectangle")(setq slide (findfile "test1.sld"))(set_tile "rb_rectangle" "1"))
    17.    ((= box_type "rounded")  (setq slide (findfile "test2.sld"))(set_tile "rb_rounded" "1"))
    18.    ((= box_type "circle1")  (setq slide (findfile "test3.sld"))(set_tile "rb_circle1" "1"))
    19.    ((= box_type "circle2")  (setq slide (findfile "test4.sld"))(set_tile "rb_circle2" "1")))
    20. (setq x (dimx_tile "im_box_type") y (dimy_tile "im_box_type"))
    21. (start_image "im_box_type")
    22.   (fill_image 0 0 x y -2);wipe
    23.    (slide_image 0 -20 x y slide)
    24.     (end_image)
    25. )
    1. Main_Dialog : dialog { label = "Slide from Image";
    2. : row {
    3.    : boxed_radio_column {
    4.      : radio_button { key = "rb_rectangle"; label = "Rectangle";}
    5.      : radio_button { key = "rb_rounded"; label = "Rounded";}
    6.      : radio_button { key = "rb_circle1"; label = "Circle1";}
    7.      : radio_button { key = "rb_circle2"; label = "Circle2";}}
    8.    : column {
    9.      : image { key = "im_box_type"; width = 14; height = 10; color = -2;}
    10.      : row {
    11.        : edit_box { key = "eb_dia1"; label = "Dia.1";}
    12.        : edit_box { key = "eb_dia2"; label = "Dia.2";}}
    13.      : row {
    14.        : edit_box { key = "eb_x"; label = " X  = ";}
    15.        : edit_box { key = "eb_y"; label = " Y  = ";}}
    16.    }
    17. }
    18. spacer;
    19. ok_cancel;
    20. }
    Rlx级
    181315t8uf2kvlkk7vnjof.png
    回复

    使用道具 举报

    18

    主题

    1529

    帖子

    973

    银币

    中流砥柱

    Rank: 25

    铜币
    649
    发表于 2022-7-5 17:24:10 | 显示全部楼层
    @Rlx:
    您正在标签中使用空格,试图对齐编辑框。正如您自己所见,垂直对齐并不完美(可能因标签使用的字体而异)。正如我在上一篇文章中所解释的,设置width和fixed_width属性是解决这个问题的方法。
    回复

    使用道具 举报

    rlx

    21

    主题

    1505

    帖子

    1551

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    81
    发表于 2022-7-5 17:28:14 | 显示全部楼层
     
     
    吉普,我知道这一点,但因为它是一个很短的标签,这没有什么大不了的。为了达到完美效果,您可以创建一个包含4列的行,第一列用于dia1和X,第二列用于两个编辑框,第三列用于dia2和Y,最后一列用于其他编辑框。通常我会这样做,但标签很短,在这种情况下,效果很小。
     
     
     
    但对于粉丝来说:
     
     
    使用固定的宽度和高度有一些缺点,例如,当您想调整图像大小时,编辑框的大小将保持不变。使用colums,您的设计将随之展开。。。但那是2U。。。
     
     
     
    gr.Rlx
    181316xucoxzzrzagccwap.png
    回复

    使用道具 举报

    7

    主题

    39

    帖子

    32

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-5 17:32:09 | 显示全部楼层
    嘿,伙计们!
     
    @Roy_043:
    谢谢Roy_043的建议!我会对名字进行修改,这样在我完成之前,更具描述性肯定是更好的方式。我最初的想法是让图片可以点击,我在上面发现的东西对我来说有点复杂。我会努力做到这一点和它的去向。
     
    @rlx:
    谢谢你,rlx的代码!你所拥有的肯定要精简得多。我喜欢我在这里看到的,漂亮整洁。我还没有机会测试你的代码,但我很快会的。
     
    感谢你们和其他像你们这样的人,在这些论坛上帮助我们这些知道有更好的方法,但只是不太确定如何去做的人!
     
    干杯
    回复

    使用道具 举报

    rlx

    21

    主题

    1505

    帖子

    1551

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    81
    发表于 2022-7-5 17:35:09 | 显示全部楼层
    欢迎您成为drafter_joe。如果你愿意的话,我也可以制作一个带有可点击图片的版本,但有时尝试一下自己也有一半的乐趣:-)我确信我在这个论坛上已经有了一些帖子,有一些例子,只是我的用户名。首先想到的是RlxPaste。可以将“$reason”参数与操作磁贴代码一起使用。只要确保包含某种形式的数据检查,如果双击其中一个图像,则所单击类型所需的所有编辑框都具有有效值。
     
    gr.Rlx
    回复

    使用道具 举报

    7

    主题

    39

    帖子

    32

    银币

    初来乍到

    Rank: 1

    铜币
    35
    发表于 2022-7-5 17:37:30 | 显示全部楼层
    rlx,
     
    我感谢您提供的可点击图像。是的,在我按照你的建议进行搜索后,我会自己尝试一下,下次我有机会。如果我在这方面有任何进展,我会向你汇报。
     
    我很好奇你在dcl工作的时间?对于我来说,你的代码非常紧凑。你受过正规教育还是自学?
     
    非常感谢。
    起草人Joe
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-5 17:40:39 | 显示全部楼层
    附件是我对该程序的看法:就个人而言,我喜欢任何对话框图像作为界面的一部分嵌入,并且使用幻灯片库可以减少需要分发的文件数量。
     
     
    AutoLISP代码:
    1. (defun c:test ( / dch )
    2.    (cond
    3.        (   (<= (setq dch (load_dialog "test.dcl")) 0)
    4.            (princ "\nUnable to find/load test.dcl file.")
    5.        )
    6.        (   (not (new_dialog "test" dch))
    7.            (princ "\nUnable to display dialog.")
    8.        )
    9.        (   (set_tile "dcl" "Slide Library Example")
    10.            (foreach key '("sl1""sl2""sl3""sl4")
    11.                (action_tile key "(updatetiles $key)")
    12.            )
    13.            (set_tile "sl1" "1")
    14.            (updatetiles "sl1")
    15.            (start_dialog)
    16.        )
    17.    )
    18.    (if (< 0 dch) (unload_dialog dch))
    19.    (princ)
    20. )
    21. (defun updatetiles ( key )
    22.    (   (lambda ( x y )
    23.            (start_image "sld")
    24.            (fill_image 0 0 x y -15)
    25.            (slide_image 0 0 x y (strcat "test(" key ")"))
    26.            (end_image)
    27.            (mapcar 'mode_tile '("ed1""ed2""ed3""ed4""ed5")
    28.                (cadr
    29.                    (assoc key
    30.                       '(   ("sl1" (0 0 1 1 1))
    31.                            ("sl2" (0 0 0 1 1))
    32.                            ("sl3" (1 1 1 0 1))
    33.                            ("sl4" (1 1 1 0 0))
    34.                        )
    35.                    )
    36.                )
    37.            )
    38.        )
    39.        (dimx_tile "sld") (dimy_tile "sld")
    40.    )
    41. )

    幻灯片B。拉链
    回复

    使用道具 举报

    12

    主题

    42

    帖子

    21

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    70
    发表于 2022-7-5 17:42:06 | 显示全部楼层
     
    看起来很棒,李!非常感谢。
     
     
     
    是的,关于下面的代码部分,我有一两个问题。
    1. edit : edit_box
    2. {
    3.    edit_width = 12;
    4.    width = 20;
    5.    fixed_width = true;
    6. }
    7. test : dialog
    8. {
    9.    key = "dcl"; spacer;
    10.    : row
    11.    {
    12.        spacer;
    13.        : radio_column
    14.        {
    15.            fixed_height = true;
    16.            : radio_button { label = "Rectangle"; key = "sl1"; }
    17.            : radio_button { label = "Rounded";   key = "sl2"; }
    18.            : radio_button { label = "Circle";    key = "sl3"; }
    19.            : radio_button { label = "Pipe";      key = "sl4"; }
    20.        }
    21.        : image
    22.        {
    23.            key = "sld";
    24.            width = 33.5;
    25.            fixed_width = true;
    26.            aspect_ratio = 0.66;
    27.        }
    28.        : column
    29.        {
    30.            fixed_height = true;
    31.            : edit { label = "X:";  key = "ed1"; }
    32.            : edit { label = "Y:";  key = "ed2"; }
    33.            : edit { label = "R:";  key = "ed3"; }
    34.            : edit { label = "D1:"; key = "ed4"; }
    35.            : edit { label = "D2:"; key = "ed5"; }
    36.        }
    37.        spacer;
    38.    }
    39.    spacer_1; ok_cancel;
    40. }

    我想我可以看到这里发生了什么,这是编辑框可用还是不可用?
     
    你能解释一下“1”和“0”吗?
     
    回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

    QQ|关于我们|小黑屋|乐筑天下 繁体中文

    GMT+8, 2025-7-3 20:26 , Processed in 0.977032 second(s), 75 queries .

    © 2020-2025 乐筑天下

    联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表