Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有重样式的跨平台GUI_Python_User Interface_Cross Platform - Fatal编程技术网

Python 具有重样式的跨平台GUI

Python 具有重样式的跨平台GUI,python,user-interface,cross-platform,Python,User Interface,Cross Platform,我正在考虑为Windows/Linux/OS-X编写一个桌面应用程序。 GUI的一个要求是,我需要能够非常准确地设置样式 也就是说:我希望能够以我想要的方式为所有元素着色,精确定位元素,在元素的单面上有边框,等等。这与我在用HTML+CSS编写带有UI的Web应用程序时的可能性非常相似 我一直在四处寻找,但似乎很难找到这样的内容(+文档!) GTK非常成熟,跨平台,并且有很好的C文档。它有许多语言的绑定,包括Python 3,这是我现在选择的语言。即使您可以使用CSS为其设置样式,但您可以设置样

我正在考虑为Windows/Linux/OS-X编写一个桌面应用程序。 GUI的一个要求是,我需要能够非常准确地设置样式

也就是说:我希望能够以我想要的方式为所有元素着色,精确定位元素,在元素的单面上有边框,等等。这与我在用HTML+CSS编写带有UI的Web应用程序时的可能性非常相似

我一直在四处寻找,但似乎很难找到这样的内容(+文档!)

GTK非常成熟,跨平台,并且有很好的C文档。它有许多语言的绑定,包括Python 3,这是我现在选择的语言。即使您可以使用CSS为其设置样式,但您可以设置样式的方式和内容也非常有限

XUL和python有一些第三方绑定,但它们没有经过良好的测试

然后,我可以选择让本地运行的python web服务器和在浏览器中运行的应用程序。但我不确定我是否应该继续这样做,或者只是我内心的网络开发者不想遵守


基本上,我希望能够建立一个漂亮的桌面应用程序。为什么这看起来如此困难?

OS-X的外观和感觉与Windows非常不同,而带有自制小部件的应用程序会感觉不一样,通常会被视为怪异甚至丑陋。在windows98时代前后,每家公司都用自己的外观制作了自己的应用程序。一个用于调制解调器,一个用于打印机,一个用于图形设置等。它们本身看起来可能并不糟糕,但如果你有两个这样的东西,再加上本地人的外观和感觉,总体印象就很难看了

所以,是的,这是网络开发者在你想要的。网络是一种与本地L&F截然不同的动物,人们从一开始就习惯于差异、不连贯、小故障、高延迟和丑陋。火焰和背景音乐。我的建议是:不要使用本机应用程序。那么你也可以在网络上构建一些东西

本机应用程序主要用于实现目标,而不是外观。做你想做的事快速(速度是最重要的功能),没有任何麻烦,淡化晦涩的外观,你会有一个伟大的本地应用程序

除了GTK之外,您还可以考虑使用这些工具包:

  • (是Python绑定)
  • (对于某些旧版本,请使用)
有,但没有我知道的和可以推荐的。

在我看来,这是解决你问题的好办法。它主要是为手机开发的,但似乎也适用于桌面应用程序

它支持许多带有动画和自定义主题的“现代”UI


QtQuick使用QML作为编程语言,这与JavaScript+HTML非常相似。有一个名为的API,它允许您在Python3中以非常类似Python的方式使用Qt。它被授权为LGPL,因此应该与大多数项目兼容。如果需要商业许可证和支持,则有。

我同意乔纳斯的观点。不要重新发明轮子,坚持既定的原则。如果你真的需要创造一些视觉上更吸引人的东西,你可以试试

  • ,例如

所有这些都与Python无关,我敢打赌您在使用它们时会遇到一些问题,但它们应该满足您的要求。

如果不深入讨论构建具有自定义外观的应用程序的利弊,我可以说,with是非常可定制的。您可以使用Qt的类似CSS的样式表来定制小部件视觉外观的几乎所有方面


如果您想看一个示例,请查看Temboo的可视化编程工具,它是用Python、Qt和PyQt构建的,运行在Windows和Mac(以及Linux,尽管我们不正式支持它)。(完全披露:我为Temboo工作。)你必须注册一个免费帐户才能下载它,但这是一个具有定制样式的大型桌面应用程序的好例子

我同意你的观点,一个应用程序应该让人觉得是本地的,并且适合你的操作系统。但是,由于我正在自己开发一个应用程序,我不会为这三个平台构建一个单独的GUI!这会让我想到GTK,但GTK提供了自己的GUI元素,与平台无关?您还应该查看Real Studio(realsoftware.com)以创建共享同一GUI的跨平台应用程序。