linux下的api数量那么少,如何编写图形界面?

linux下的api数量那么少,如何编写图形界面?,第1张

Linux编写图形界面的话,目前比较流行的就是GTK+、Qt和wxWidgets,前一个基于C语言开发,后两个基于C++开发,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:

01

GTK+

这是一个免费、开源、跨平台的GUI开发工具包,基于C语言开发而来,著名的GNOME桌面就是采用这个工具开发,自带了大量组件和容器,可以轻松布局开发任意Linux桌面程序,如果你本身只熟悉C语言的话,可以使用一下这个工具包,非常不错,简单易学,非常容易上手,而且官方自带了丰富的Demo示例,都有源码可供参考和学习:

02

Qt

这是一个免费、开源、跨平台的应用程序开发框架,基于C++开发而来,著名的LinuxKDE桌面就采用这个框架开发,自带了可视化设计界面,包含了大量组件和容器,只需简单拖拽、编辑属性,就可快速创建一个GUI程序,官方资料丰富,社区文档全面,对于Linux桌面开发来说,非常不错,值得使用和学习:

03

wxWidgets

这也是一个非常著名的跨平台界面开发库,免费、开源,基于C++开发而来,与Qt仿平台外观不同,wxWidgets使用平台库创建图形接口,不需要在代码上添加额外的层,因此更高效,社区文档丰富,资料教程全面,不管是私用还是商用,都完全免费,如果你本身只熟悉C++,需要做Linux界面开发的话,那么wxWidgets就是一个非常不错的选择:

当然,除了以上3种工具或框架,还有许多其他编程语言也可开发LinuxGUI程序,像Java的Swing,Python的Tkinter等都非常不错,根据实际项目需求,选择合适的一种就行,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

关于linux两大图形界面KDE和Gnome

KDE早于Gnome出现,但是KDE基于的Qt是不遵循GPL开源协议的,Qt是一个跨平台的C++图形用户界面库 ,它是挪威TrollTech公司的产品(2008年底被NOKIA收购)。 Qt具有优良的跨平台特性(支持Windows、Linux、各种UNIX、OS390和QNX等)、面向对象机制以及丰富的API,同时也可支持2D/3D渲染和OpenGL API。在当时的同类图形用户界面库产品中,Qt的功能最为强大.但底层的基础 Qt却是一个不遵循GPL的商业软件,这就给KDE上了一道无形的枷锁并带来可能的法律风险。一大批自由程序员对KDE项目的决定深为不满,它们认为利用非自由软件开发违背了GPL的精神。于是这些GNU的狂热信徒兵分两路:其中一部分人去制作Harmonny,试图重写出一套兼容Qt的替代品,这个项目虽然技术上相对简单,但却没有获得KDE项目的支持;另一路人马则决定重新开发一套名为“GNOME(GNU Network Object Environment)”的图形环境来替代KDE。

GNOME选择完全遵循GPL的GTK图形界面库为基础,因此我们也一般将GNOME和KDE两大阵营称为GNOME/GTK和 KDE/Qt。与Qt基于C++语言不同,GTK采用较传统的C语言 ,虽然C语言不支持面向对象设计,看起来比较落后,但当时熟悉C语言的开发者远远多于熟悉C++的开发者。加之GNOME/GTK完全遵循GPL版权公约,吸引了更多的自由程序员参与。

四、linux/unix基于X window的图形显示处理原理

X Window从逻辑上分为三层:最底层的X Server(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的 *** 作并将它交给X Client(X客户端)作出反馈,而由X Client传来的输出信息也由它来负责输出;最外层的X Client则提供一个完整的GUI界面,负责与用户的直接交互(KDE、Gnome都是一个X Client),而衔接X Server与X Client的就是“X Protocol(X通讯协议)”、它的任务是充当这两者的沟通管道。尽管UNIX厂商采用相同的X Window,但终端的X Client并不相同。

五、Qt、GTK 和KDE、GNOME的关系

简单来说:为了方便开发人员编写X clients,就有了Xlib来封装X协议;Xlib还不够方便,于是就有了qt和gtk,它们提供了很多窗口控件(widgets)。

为了方便用户 ,就出现了gnome和kde等桌面管理系统。一般来说,linux用户看到的界面就是其中之一了。gnome用的是gtk库,kde用的是qt库

现在Win10下用WSL(Windows Subsystem Linux - bash)开发程序基本上没问题了,包括上一篇Docker也能使用了。

但某些时候,你可能还是要用到Linux上的图形界面程序,比如Pycharm, Sublime Text等,因为它们集成WSL Bash环境会更方便使用。

其实越来越多的程序,都开始原生支持WSL了,比如VS Code。

但Pycharm、Sublime暂时还不(免费)支持。

如何解决?很简单,目前阶段,先装个XServer就能用,速度没啥区别。

下图是我连接WSL上的Pycharm CE,可以看到,Terminal窗口显示的python,是Linux的python:

Install the lastest version of VcXsrv

配置文件: ~/.bashrc

我一般选“Multiple Window”

比如WSL 输入: startxfce4 ,XLaunch窗口就会跳出来以下窗口:

加个快捷方式:

sudo ln -s /opt/pycharm-community-2018.3.5/bin/pycharm.sh /usr/bin/pycharm

打开 bash ,直接输入 pycharm 就能运行了!

https://blog.miguelgrinberg.com/post/setting-up-a-flask-application-in-pycharm


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7873710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存