PLM之家PLMHome-工业软件践行者

[二次开发源码] UG NX二次开发源码分享:创建树列表UI 界面功能技巧

[复制链接]

2014-11-10 14:57:33 5270 0

2471

主题

1276

回帖

8万

积分

管理员

PLM之家站长

积分
82199
QQ
发表于 2014-11-10 14:57:33 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

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

x
" G" X9 ?. d+ X" @& U
简单说说顺序和注意事项:
7 `* c( }0 _6 w$ d( P. _. t) Q0 A* E: \  v/ |5 V
& }9 p! Y& K8 Q5 z8 S& c
(1) 先插入columns,也就是先创建列,创建的时候,不要放在initialize_cb()回调函数内,要放在dialogShown_cb()内。 ! P5 w# |; K' s/ j8 {$ o# t
创建Columns比较简单,直接搞:
) G2 f0 t& U; o0 d7 \. e" t! U4 ^
//Insert Columns        
# O+ ~  M* t' D8 K        tree_control0->InserTColumn(ColumnFirst, "First Column", 80);3 y( D* m% c: H  c
        tree_control0->InsertColumn(ColumnSecond, "Second Column", 80);# i2 X2 N" n: }( _
        tree_control0->InsertColumn(ColumnThird, "Third Column", 80);8 c& b* q* D; g" |
- o. z9 N5 {0 E. k

$ }. t& c) X4 \5 F8 _6 G// 关于列的序号,最好定义一个枚举类型,方便使用
. A  c2 ]% w* a) V- _3 v) s& t
: ~5 m* }' I2 x& {( A

/ U3 D& H& O3 F3 k% Y, \        //Set resize policy for columns  -- 要不要无所谓
5 G/ E+ l! I$ E        tree_control0->SetColumnResizePolicy(ColumnFirst, Tree::ColumnResizePolicyConstantWidth);
6 [' J5 [2 N. D  E% _        tree_control0->SetColumnResizePolicy(ColumnSecond, Tree::ColumnResizePolicyConstantWidth);& v5 \/ t' B  p2 k
        tree_control0->SetColumnResizePolicy(ColumnThird, Tree::ColumnResizePolicyConstantWidth);9 v6 R- n6 X" L( r: {' f2 W" n
* s$ z6 K0 @2 T7 ^2 F% C# S
" ^0 G* w* h8 |$ Y9 C2 v0 X9 i
        //Let the second column interpret the text as icon  //是不是显示图标在列的前面8 e2 i5 s0 [  d' a3 T6 N

, c' D3 X, [0 H. n

$ t9 Z. c3 c4 F. F. D        tree_control0->SetColumnDisplayType(ColumnSecond, Tree::ColumnDisplayIcon);        - c2 p  b3 ?& w" P) p

: q! N: O  L1 d6 z, ?+ g
- F+ P( T) E" @/ D(2)创建Node,一般情况下根据控件按钮添加,当然如果你想一开始对话框就显示所有的node,那么还是在
dialogShown_cb()继续写。/ O1 Q8 d+ o/ S* ]  s

3 K7 U. O! O1 @' h' f9 x
8 p% W$ j  s# l( d
Node的创建,基本就是先创建再插入。
- P4 s# _; Q) a
0 `9 }5 P" A8 P( U$ h$ L

1 [, n* V5 t8 ~3 A- Q8 {BlockStyler::Node *node = tree_control0->CreateNode(“plmhome”); //创建( u% A3 u8 C9 R2 V! E' i  C
tree_control0->InsertNode(node,parentNode,afterNode,tree_control0->NodeInsertOptionSort); //插入
8 [, B( s/ P+ Q3 g' N% G' c3 }//如果没有ParentNode和afterNode 就全部设为 NULL+ b7 Q3 a6 A& j5 C$ K
5 V, \2 @" W% z8 d1 I
( w; }/ \& t: e3 z: v
基本就ok了!
% ?7 V. I$ G" h1 E$ k* i; ]
+ L+ o5 G& H$ e# j" t/ ]3 `

0 x, Q# H* O; r+ Q, F  M(3) 如果要对对应的列添加值,那就是通过设置 节点的显示内容
' C) U( i/ Y. z( m/ c; ]6 \4 r! H* o1 A

$ r) }1 Q. q( q$ F& i& ^Node->SetColumnDisplayText(Column2,"plmhomedisplay");     8 T  O! Z: V9 J: C; U
5 {3 q# x9 D! e: U4 o1 Q, P

' r3 R" u6 P7 A0 t: J0 Y# d$ Q; L, ~- Z8 H/ Z5 s# Y: z. m( I
4 x8 F) `8 P, B. @

" M: I6 K- |/ N  [& d( _; a- g

+ o0 H2 K; T% _" e* T; h8 q
, F- p0 @* A) I; l

  L# j; O! L: C1 e/ c+ s1 L! R5 Q
6 W; c( s% K9 a; M) ^% d# A7 n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了