游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 研究僧

提问:一个底层的关于界面的问题

[复制链接]

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2005-12-18 11:00:00 | 显示全部楼层

Re: 提问:一个底层的关于界面的问题

谢谢各位的认真回复:)学到了不少东西。对于hyzboy提到的“二、QT是针对不同操作系统API并对开发者提供统一的接口”,可能是我的话说得不够清楚,我的意思说qt是怎么跟系统打交道,而不是我们怎么跟qt打交道,我的看法,一种可能就是像下面的样子比
不如说一个对话框的显示:
如果 操作是windows操作系统
那么
就调用 windows的对话框创建函数
否则 如果是unix操作系统
那么
就调用 motif的对话框创建函数

假如是按照上面的模式,我们可以看到,qt并没有自己一套的界面系统,只是把系统的接口集合起来。我觉得这种可能不大,因为qt的按钮响应是没有id的标识的,它是使用了connect的方法:
connect(sender,signal,receiver,slot),大概意思就是消息发出者sender发出消息signal,接收者receiver通过slot来响应该消息,感兴趣的朋友可以登陆qt的主页去看看。
http://www.trolltech.com/

当然另一种可能就是自己弄了一套新的东西

好了,这里就不讨论qt的问题了,回到话题上来,假设我知道了怎么在屏幕上画一个点,画一条线,画一个矩形等等,那么怎么通过这些做出我想要的dialog呢?做出我想要的menu呢?…………还请各位解惑啊:)
如果可以的话,希望大家在回帖的时候提供一些链接,或者相关资料的关键字,好让我没有完全明白你的意思的时候可以自己去查看相关的资料,这样也会相对的少打扰各位的,你说是吗:)



1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2005-12-18 11:19:00 | 显示全部楼层

Re:提问:一个底层的关于界面的问题

我想很多人都用过MAGIC分区软件,里面也有很多菜单,对话框,但是我觉得很粗糙,根本就不是我们现在看到的对话框的样子,呵呵,突然想到的,不要骂我恶意灌水哦:)

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2005-12-18 12:06:00 | 显示全部楼层

Re:提问:一个底层的关于界面的问题

1. c库有绘图函数#include <graphics.h>
2. 在纯2D的情况下,后画的会覆盖前面的内容
3. 你要调整前后就应该控制绘图顺序

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2005-12-18 12:37:00 | 显示全部楼层

Re:提问:一个底层的关于界面的问题

不知道我想得对不对。
比如计算机显示的数字信息存放在display地址开头的
存贮区,可以假设这些信息的存放方式是安照像素坐
标的次序(或者安照一定的规则)来排放。那么可以
通过汇编语言比如mov [display+offset] currentPixelInfo
来控制计算机的显示绘制。那么要绘制一个窗口之类
的东西,就是将正确的像素信息都放到display存储区。
当然,对于操作系统之上普通程序,像上面这类存储
区已经被系统禁止访问了。

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2005-12-18 22:51:00 | 显示全部楼层

Re:提问:一个底层的关于界面的问题

自己详细看了一下qt的源代码,正如hyzboy所说的“QT是针对不同操作系统API并对开发者提供统一的接口”,因为我看到了在windows版本的qt是有关于窗口中注册函数的代码,但是我在其unix版本下没有看到相关的代码。同时我也对于这句话“任何操作系统都有汇编支持”找到了一些资料:出自http://www.itcnw.com/Article/Net/Dos/200511/78012.html
每种计算机都有自己的汇编语言——没必要指望汇编语言的可移植性,选择汇编,意味着选择性能而不是可移植或便于调试。

关于画点的问题,找到了《计算机图形学原理及实现(c语言描述)》这本书,看了一下,简单的说:在屏幕上画点就像我们高中时候的一个物理试验:),好像是磁场对电场的影响那个试验吧,当时老师拿着一根磁铁就改变了真空玻璃里面的光束偏转了。同时在《计算机图形学原理及实现(c语言描述)》这本书里面看到了这样的话“我们已经从制造商为其特殊的显示设备开发的低层次的设备相关软件包转向更高级的设备无关的软件包”,我的理解就是我们装不同操作系统的时候,设备的驱动程序已经和系统商量好了怎么处理,于是就有不同系统的驱动程序了。也可想到当初linux的发明者要写很多的驱动程序来管理设备。

话回来吧,我还是搞不懂线条到对话框的之间的一些过程还是没有头绪,还请各位多多帮忙啊,谢谢了,明天停电^_~嘿嘿

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2005-12-19 09:26:00 | 显示全部楼层

Re:提问:一个底层的关于界面的问题

我记得在十多年前,我们写游戏时,有句话叫做:"曾经有人说'给我一个支点我可以撑起地球',而程序员说'给我一个画点函数,我可以创造一切'".

屏幕上所有的内容由点构成,Windows下绘出的漂亮窗口,DOS/UNIX也都可以。

画线画圆有相对的算法,Windows 95-2000的窗口绘制相对简单,XP需要一些现成的图片来辅助,但也并不麻烦。MacOS X的窗口绘制就相当复杂了,需要显卡的硬件OpenGL支持.

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2005-12-29 10:56:00 | 显示全部楼层

Re:提问:一个底层的关于界面的问题

研究僧是想自己做操作系统的shell~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 02:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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