visualfc
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
42 随笔 :: 0 文章 :: 119 评论 :: 0 Trackbacks
<
2009年9月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
C++(12)
(rss)
FOX(1)
(rss)
go(10)
(rss)
LUA(5)
(rss)
Qt(13)
(rss)
WTL(16)
(rss)
随笔档案
2014年4月 (1)
2014年3月 (2)
2013年1月 (1)
2012年6月 (1)
2011年9月 (1)
2011年7月 (1)
2011年1月 (3)
2010年11月 (1)
2010年10月 (1)
2010年6月 (1)
2010年4月 (1)
2010年2月 (1)
2010年1月 (1)
2009年11月 (1)
2009年9月 (1)
2009年6月 (2)
2009年5月 (4)
2009年4月 (1)
2009年3月 (2)
2009年2月 (2)
2009年1月 (4)
2008年12月 (2)
2008年11月 (2)
2008年10月 (2)
2008年9月 (1)
2008年8月 (2)
友情链接
大连铭泰船务有限公司
大连铭泰船务有限公司是一家在大连长兴岛注册的船务公司,公司主要业务:船舶修理;船舶备件供应;船舶物料供应。公司有一只专业的航修队伍,从而保证高效,优质的完成修理任务。公司同时与多家柴油机,净油机,空压机厂家有密切的合作,能提供多种型号的进口,国产柴油机,净油机,空压机的备件
搜索
最新评论
1. re: Go 语言开发工具 LiteIDE x22 发布
不知道如何端点调试啊
--greg
2. re: Go语言开发工具 LiteIDE x21.1发布
支持HTML css 吗?
--flayman
3. re: Go语言开发工具 LiteIDE x21.1发布
因为要编译打包和上传四个操作系统版本,所以二进制版本的发布周期比较长。
相对而言,github上的源码版本相对比较新,BUG也会及时修复。
--visualfc
4. re: Go语言开发工具 LiteIDE x21.1发布
更新速度真快!
--战魂小筑
5. re: Go语言开发工具LiteIDE x15.2发布,两周年纪念
难道博主也是船舶行业的?
怎么给了个“大连铭泰船务”的链接……
--eryar
阅读排行榜
1. CppSupport for Qt Creator 1.3.x(15025)
2. 学习LUA,使用IUP进行GUI程序设计(11133)
3. VS2010英文正式版官方下载(8907)
4. WTL8.1已提供下载,正式支持VS2008。(7411)
5. VFC的WTL应用程序向导简介(4359)
评论排行榜
1. VFC的WTL应用程序向导简介(10)
2. 测试GUI自动排版,发图纪念。(10)
3. WTL AppWizard 2.0 RC1(9)
4. VCExpress下配置WTL开发环境(更新)(9)
5. FOX TOOLKIT 学习 - 文本显示(9)
测试GUI自动排版,发图纪念。
为了测试一下GUI自动排版,照着自己的手机做了一个GUI程序界面。特此发图以留纪念。
posted on 2009-09-17 22:29
visualfc
阅读(2377)
评论(10)
编辑
收藏
引用
评论
#
re: 测试GUI自动排版,发图纪念。
2009-09-17 23:45
diverger
博主说的自动排版是指类型于QT或者wxWidgets的layout的功能吗?
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。[未登录]
2009-09-18 08:17
visualfc
是的,使用了相似的layout功能来完成。
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。
2009-09-18 10:02
codespy
博主能否介绍下布局的原理呢?
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。[未登录]
2009-09-18 12:18
visualfc
如果详细讲,恐怕不只一篇文章能讲得完,在这里仅简单介绍一下实现原理。
图中的布局仅使用boxlayout来完成,如果配合space可以完成更多控制。
这个布局控制与QT和WX有所不同,其子窗口由父窗口管理,layout仅具备算法功能,因此理论上可以对窗口任意切换layout。
//代码原理如下
class xwnd
{
xwnd* first;xwnd* last;xwnd* prev;xwnd*next;
xlayout* layout;
//调用排版功能
void layout()
{
if (_layout)
_layout->layout(this);
for (xwindow* child = _first; child; child = child->_next)
{
child->layout();
}
}
};
class xwindow : xwnd;
class xframe : xwindow;
class xspace : xwindow;不生成实际的窗口,只是一个占位。
//示例如下:
xframe* frame = new xframe(_T("TEST")); //框架
frame->set_layout(xboxlayout(true));//设置HORZ_BOX
new xedit(frame,LAYOUT_FILL,xsize(100,100)); //左面的EDIT窗口
xwindow* right = new xwindow(frame); //右面的窗口做为容器
right->setlayout(xboxlayout(false)); //设置VERT_BOX
new xspace(right,LAYOUT_FILL_Y); //促使OK和CANCEL按钮置于最下
new xbutton(right,_T("OK"));
new xbutton(right,_T("Cancel"));
frame->create(); //最后生成框架窗口并显示
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。
2009-09-20 21:47
codespy
主要的布局有两种,一种是一维的(水平盒子,垂直盒子),另一种是二维的(网格布局)。此图上的键盘布局是二维的,难道是用一维布局组合的吗?
对于“这个布局控制与QT和WX有所不同,其子窗口由父窗口管理,。。。”,
这个与Qt相同。
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。
2009-09-20 21:49
codespy
补充一下,有两张图片看不到(显示的是两个红叉)!
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。[未登录]
2009-09-21 08:01
visualfc
@codespy
我的表达可能不太准确,“这个布局控制与QT和WX有所不同,其子窗口由父窗口管理,。。。” 这段话指的是在WX和QT中使用的是 Lyaout->addWidget(child)的形式,而在此布局中则由 new child(parent)的方式来指定。
为了试验布局是否准确,此例中的键盘布局使用的也是hbox和vbox的组合。即将键盘grid看成是一个vbox和四个hbox组合。
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。[未登录]
2009-09-21 08:07
visualfc
两张图片看不到是因为原来文件名为phone..png,结果编辑时不认,又重传的phone.png。现已修正。
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。
2009-09-22 13:08
codespy
@visualfc
在Qt中布局对象没有子部件的所有权(ownership),子部件的所有权仍然归父部件。也就是说,销毁布局并不会销毁布局所管理的子部件。
对于实现二维布局算法,俺没有找到好的参考资料(估计各家的实现都不一样), 现在还没什么思路。看到博主的图片后很兴奋!不过,有的布局用一维布局组合的话会使用户的代码显得混乱,甚至组合不出来(比如类似德国纳粹标志)。
回复
更多评论
#
re: 测试GUI自动排版,发图纪念。[未登录]
2009-09-22 13:52
visualfc
@codespy
是这样的,本质上一样,只是不同的实现方式而已。
可能的话加我gmail。visualfc at gmail.com
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © visualfc