python图形界面设计代码,python设计程序界面
本文转载:
很多LINUX初学者不知道LINUX和X的关系,X和Xfree86的关系,X和KDE和GNOME的关系。虽然很容易混淆概念,但我觉得很有道理。
求解方法展示了X,X11,XFREE,WM,KDE,GNOME等之间的关系。因为我水平有限,可能会有错误。请向你的上级指出。
第一,linux本身没有图形界面,目前linux的图形界面只有linux下的APP应用实现。
图形界面不是linux的一部分,Linux是基于命令行的操作系统。linux和Xfree的关系和当时的DOS有关。
和WINDOWS3.0一样,WINDOWS3.0是DOS的扩展,不是独立的操作系统,是DOS下的APP应用级系统。
XFree只是linux下的一个APP应用。虽然不是系统的一部分,但是X的存在让用户更容易使用电脑。WINDOWS95和更高版本是不同的。他们是
的图形界面是操作系统的一部分,它在系统的内核中实现。没有图形界面,windows不会成为windows,但是linux不一样,没有图形。
很多包含接口linux,linux,linux的WEB服务器都没有X server。这也是WINDOWS和linux的重要区别之一。
其次,X是一个协议,而不是一个特定的软件:
x
这是一个协议。就像HTTP协议,IP协议一样。这个概念甚至让很多初学者和学习LINUX有一段时间的人感到困惑。如果你需要执行一个基于X的APP应用来查看内容,他会连接。
收到X服务器,开始用X协议和服务器通话。比如x APP应用在屏幕上输出一个圆,它会通过X协议在X服务器上输入必须在屏幕上画一个圆。x应用程序
序列只告诉X服务器在屏幕上的什么地方用什么颜色画多少个圆,负责具体的“画”动作,比如这个圆是怎么产生的,用哪个显卡驱动命令显卡完成等等。
通过X服务器。x服务器还负责捕捉键盘和鼠标的移动。假设X服务器按下鼠标左键,他会告诉x APP亲爱的APP老师:
鼠标被按下。有什么指示吗?如果x APP设计成先按鼠标左键,然后在屏幕上画一个方块,那么x APP就会在X服务器上再画一个方块,那是当然的。
他会告诉服务器在哪里,颜色在哪里,要画多少个方块,但是他不关心怎么画。那是关于服务器的。
该协议需要通过特定的软件来实现。这是下一个:
三。X和XFree86的关系
有
需要该协议的特定软件。有交通法规就像需要警察来维持交通秩序。Xfree86只是按规定达成共识。
“警察”。他按照X协议的规定,完成了x APP提交的屏幕上显示的任务。当然,并不是只有特定的警察才能维护和执行这个法律,比如也可以通过交通合作来管理。
执行交通法规,必要时警察可以介入。当然前提是他们懂交通法规,也就是协议。因此,实现X协议的软件不仅
XFree86和XFree86是实现X协议的免费X服务器软件。MOTIF是商业上常用的,现在XORG也有了,还有很多发烧友写的小X服务。
软件。WINDOWS也可以在X服务器上运行。然后,可以在linux系统上运行x APP应用,在另一个WINDOWS系统上查看。多么不可思议!
这样的X服务器软件可以在谷歌上找到。但是,XFree86是LINUX上最常用的。(目前的LINUX发行版使用Xorg。)
计算机的图形界面也考虑使用X协议,做出了X协议的最佳图形界面。而且他的X协议的实现是在系统内核中进行的,所以性能显然非常好。那又怎么样!
苹果平台上大量的大型3D平面设计软件就是这个原因。
为清楚起见,请通过HTTP协议进行比较:
该协议是超文本传输协议(http)
实现该协议的一般服务器有apache IIS等。
要求这些服务器传输文件的客户有:IE,MOZILLA,NETSCAPE等。
是X协议.
实现该协议的一般服务器有Xfree86、Xorg、Xnest等。
需要这些服务器完成查看任务的客户的所有x APP应用:
仅仅
但是,普通人很容易理解这一点,因为HTTP协议的服务器和客户端通常是在两台不同的计算机(服务器和客户端)之间实现的。另一方面,X协议的服务器端和客户端程序是相通的。
许多用户发现这很难理解,因为他们经常在同一台计算机上。既然是通信协议,就和平台无关,可以让安装了x server的远程电脑查看x APP应用。而且,由于
将显示在安装了Xnest server的windows系统上。但是,在大多数情况下,x APP应用程序使用本地X服务器,X服务器将显示结果打印到本地显示器。
设备。这也是很多人不明白X是一个协议的原因。
4.X和X11R6是什么关系?
不知道初学者有没有注意到/我们
R/X11R6目录,这是XFree的默认安装目录。
X11R6实际上是X协议第11版第6版
(X协议第11版第六版)是指现在的X协议是第11版,然后又经历了6次小的修改。不同版本的X协议无法通信。就像我们现在不能用IPV4和IPV6通信一样,不过不用担心,现在的X服务器软件和X应用都是沿用X11R6的。
另外,这些版本如XFree86 3.3.6 XFree86 4.3.6是实现X协议的软件XFree86的版本号。这是一个初学者经常混淆的概念。
协议的版本和实现协议的软件的版本——你知道这两个概念的区别吗?
5.X服务器和WM(窗口管理器)是什么关系?
你通常如何启动图形界面?
如果一开始就进入图形界面,那就太可惜了,因为你错过了一个了解X服务器启动过程的好机会。不过没关系。您打开一个XTERM输入:
初始化3
你可以安全地回到角色界面。
好了,经过下面的实验,你就完全明白X和WM(窗口管理器)的关系了。
首先输入以下命令:
#startx
启动图形界面,你会像往常一样看到一个完整的图形界面操作环境。
你可以最大化,最小化,移动,关闭窗口等。
按ctrl alt backspace返回字符界面。
输入:
#xinit
再次启动图形界面,你看到了什么?你会看到一个XTERM。你不能移动它。但是您可以在这个XTERM中输入命令来打开X应用程序。如果我进入:
#mozilla
打开浏览器。你看到的浏览器和平时有区别吗?他在屏幕中间,不能移动,最小化,最大化,没有边框。
为什么同一个X应用差别这么大?因为当我们用startx启动图形界面的时候,我们也启动了一个WM(窗口管理器)。如果你用KDE开始KDE,你就用GNOME开始GNOME。但是当你用xinit启动图形界面的时候,你并没有启动WM。
你现在明白窗口管理器的功能了吗?他的角色是最大化、最小化、移动、关闭窗口等。这些都不是X服务器的责任。
如果用xinit启动图形界面,在xterm中输入twm,看看会发生什么?
Xtermm添加了边框,通过边框可以移动、最大化和最小化这个Xtermm。TWM是XFree86中包含的窗口管理器,XFree86是一个相对简单和最简单的窗口管理器,但它具有窗口管理器的所有特征。
如果你输入gnome-session而不是twm,你可以启动GNOME。
或者输入startKDE启动KDE。
通过以上实验,你可以清楚地了解它们之间的关系。
不及物动词关于KDE和侏儒
KDE和GNOME是LINUX中最常用的图形界面操作环境。他们不仅仅是一个窗口管理器,KDE是KDDesktop。
环境的缩写。它不仅仅是一个窗口管理器,还有很多配套的应用软件和便捷的桌面环境,比如任务栏、开始菜单、桌面图标等等。
GNOME是GNU网络对象模型环境的缩写。像KDE一样,它也是一个强大的集成环境。
在其他UNIX系统中,CDE经常被用作这样的环境。
其他小窗口管理器有:
窗口生成器,后步骤,黑盒,fvwm,fvwm2等。都是常用的优秀窗口管理器,在REDHAT9中都有。
Window maker默认不安装,可以试试。只要xinit在wmaker里,就可以用windowmaker。
七。linux图形界面层次关系综述
Linux本身-X服务器窗口管理器(集成桌面环境)-X应用程序。
Xfree86服务器的实现包括两部分,一部分是底层直接处理显卡,另一部分是上层处理X应用。上层负责接收应用程序请求以及鼠标和键盘。
行动。而直接和显卡打交道的底层负责指挥显卡生成图形,其实就是显卡驱动。上层收到应用程序的请求后,会对请求内容进行适当处理,然后交给显卡驱动进行命令。
完成显卡的绘制动作。此外,上层捕捉键盘和鼠标动作的部分会将鼠标和键盘的状态信息提供给应用程序,应用程序收到这些信息后会决定是否采取相应的动作。
通常是VESA,VGA,fbdev等。是不同显卡的驱动。
视频电子标准协会
视频图形阵列
帧缓冲设备
等待
都是不同的显卡标准,但是这些标准都很老了。现在所有的显卡都兼容这些模式。
处于帧缓冲模式的显卡没有任何计算数据的能力。它就像一个临时蓄水的水池。CPU将计算结果放入这个池中,然后池将结果传送到显示器。中间不会做任何数据处理。在这种情况下,所有的显示任务都由CPU来完成,这对CPU来说是一个沉重的负担。
从frambuffer这个名字就能猜出它的作用(数据检测缓冲)。
linux内核中有一个framebuffer机制,就是模仿framebuffer显卡的这个功能。它的优点是把显卡的硬件结构抽象出来,把所有的显卡作为一个‘池’。应用程序也可以直接读取这个池的内容。framebuffer的设备名是/dev/fb。
您可以使用以下命令:
#dd if=/dev/zero of=/dev/fb
清空屏幕。如果你的X是framebuffer驱动的,屏幕会全黑。通过移动鼠标和切换窗口,可以再次显示原始内容。
如果不使用framebuffer驱动,可以在字符模式下做这个实验。屏幕将被完全清除。
以下命令:
#dd if=/dev/fb of=fbfile
您可以将内容保存在fb中,稍后再写回屏幕:
#dd if=fbfile of=/dev/fb
类似于截屏,只是截取的图像不能用普通的图像浏览器查看。
现在你知道linux中framebuffer设备的魔力了。
高分辨率的Linux字符界面,启动时会有一个小企鹅的logo,这个logo是用framebuffer函数写在屏幕上的。
VESA和VGA比FB好很多,但是显示能力有限。CPU仍然要处理大部分的显示任务。
目前的
在显卡就不一样了,CPU几乎不显示带参数的任务,而是专注于计算。我们通常下载linux中的图形驱动,实际上是替换XFree86的底层部分。
使其具有更强的显示能力。比如你的显卡是nvidia,XFree的默认驱动是‘NV’。他是nvidia显卡的通用驱动,但是不会玩。
nvidia显卡的性能。此“nv”驱动程序模块可在以下位置找到:
/usr/x11r 6/lib/模块/驱动程序
目录下,文件名为:nv_drv.o
这个目录下还有很多显卡驱动模块。
APM _ drv . o dummy _ drv . o NSC _ drv . o sis _ drv . o
ark _ drv . o FB dev _ drv . o NV _ drv . o tdfx _ drv . o
ATI _ drv . o glint _ drv . o r128 _ drv . o TGA _ drv . o
ATI misc _ drv . o i128 _ drv . o radeon _ drv . o trident _ drv . o
chips _ drv . o i740 _ drv . o rendition _ drv . o Tseng _ drv . o
cirrus _ alpine . o i810 _ drv . o S3 _ drv . o VESA _ drv . o
cirrus _ drv . o Linux S3 virge _ drv . o VGA _ drv . o
cirrus _ laguna . o MGA _ drv . o savage _ drv . o
cyrix _ drv . o neo magic _ drv . o silicon motion _ drv . o
Fbdev vga evsa等。都在其中。
只要XF86Conf文件的Section module部分指定了什么驱动,X就用什么驱动。
代码:
“模块”部分
加载“dbe”
加载“extmod”
此处使用了# fbdev
加载“glx”
加载“记录”
加载“freetype”
加载“类型1”
加载“dri”
末端部分
这是XFree86以上版本的方法,即X主程序和驱动模块分离。
主程序是/usr/X11R6/thdbl/XFree86(即上半部分)。
然后当主程序启动时,它根据配置文件决定使用哪个驱动程序。
但是在之前的XFree86版本(3.3.6)中,X主程序和驱动模块是合二为一的,所以针对不同显卡有很多版本的Xfree86 3.3.6。
其他X服务器如KDrive也集成了驱动和主程序,所以同样的KDrive X服务器可以分为VESA、SVGA和fbdev三个版本。因为这些是轻量级的x服务器,所以以这种方式来简化结构。
Xfree86 4的驱动和主程序分离的好处是用户可以自己添加升级驱动。
阅读(955) 评论(1) 转发(0)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。