Python + Qt#1的第一步

本教程的重点是使用Python作为编程语言来教授QT框架的使用,为此,我们可以同时使用PySide和PyQt,但是在本教程中,我们将使用PySide,因为本教程的作者更喜欢LGPL PySide许可证。而不是GPL或PyQt商业版。

首先...什么是Python?

根据维基百科:

“ Python是一种非常高级的解释型编程语言,其哲学强调非常简洁的语法,并且有利于可读代码。”

Python是一种multipadradigm编程语言,因此它支持不同的python编程范例,例如,它支持:面向对象编程(OOP),命令式编程(Structured)以及较小程度的函数式编程。

只有这样?

不,它还是一种动态类型化语言,这意味着python允许我们在程序执行期间为同一个变量分配不同类型的值,有些人将其视为一种优势,而另一些则将其视为劣势,请亲自学习。

除了上述内容,Python还允许我们(像许多其他工具一样)在Web环境和Web桌面中进行编程,它也是跨平台的,当前它支持Gnu / Linux,Windows,Mac osx,Android(如果您需要提及它们,修改)。

什么是QT?

QT是最初由诺基亚开发的多平台框架,后来出售给Digia,用于应用程序开发,它是用C ++编写的,但是可以通过Bindings在其他语言中使用(在我们的情况下为PySide或PyQt )

PySide和PyQt之间的区别

主要是

  • 许可,PySide根据LGPL条款获得许可,PyQT根据GPL条款或商业许可获得许可,因此在创建封闭式应用程序时,我们需要付费。
  • PySide由诺基亚创建,PyQt由RiverBank创建。
  • 每次我们使用每个QT对象的QString时,PySide避免了使用STR的麻烦。

我们可以详细说明完整的更改 这里.

准备:

我们安装Qt:

如果我们与Kde有发行版,那么我们应该已经拥有了我们需要的东西,如果没有的话:

sudo apt-get 安装 qt4-dev-tools

我们安装PySide:

sudo apt-get install pyside pyside-tools

我们的第一个Python + QT应用程序

我们转到我们最喜欢的文本编辑器,我建议您安装sublime-text2,但是您可以使用自己喜欢的文本编辑器,然后键入以下代码并将其保存为我们希望始终以扩展名“ .py”结尾的名称,我将另存为app1.py:

3

见代码

我们从控制台像这样运行它:

python app1.py

该窗口应出现

2

那是什么,因为如果您以前只有一个控制台,那您在抱怨什么? 您期望得到什么,Erp? 来吧,某事开始。

现在让我们解释一下代码:

from PySide.QtGui import *

from sys import exit, argv

在这里,我们导入了执行PySide所需的模块。

app = QApplication(argv)

我们使用名称app创建Qapplication实例。

window = Qwidget()

我们创建QWidget()的实例。

window.setWindowTitle("Primera App PySide")

我们执行setWindowTitle方法,该方法接收一个String作为参数来“设置” Qwidget的标题。

window.show()

我们显示我们的窗口

exit(app.exec_())

最后,我们执行QApplication()的无限执行周期。

谢谢

感谢您在这里关注我并且对我有用的人。 在下一个教程中,我将解释如何使用QT Designer设计窗口并将其导入到我们的项目中。

另外,我添加了论坛的链接 desde linux 我有一个小主题,里面有一个小型的 python 教程和指南库,包含不同的术语,包括:

基本的Python教程

蟒蛇

PyQt和PySide

Django的

网络2Py

python中的科学编程。

还有很多。

链接到论坛

我说再见,希望他们能一如既往地为您服务,成为这个美好社区的荣幸。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   @ trust17

    感谢您的帖子!

  2.   安努比斯

    2件事:

    1. Qt最初不是由诺基亚开发的,而是由奇趣科技开发的,后来被诺基亚收购了。 后者随后将Qt出售给Digia。
    2.第一个应用示例中的图像与代码不匹配。

    感谢您的教程,我将继续进行🙂

    1.    F3NIX

      你是完全正确的,我错过了。 第二点,您也是对的,就是我对其进行了更改以使其变得更容易并且不使用类,并且错过了修改(初学者错误)。 我已经通过了更正,以供某些编辑批准。

    2.    F3NIX

      我无法修改,我将其留给某些编辑器。

      问候。

      1.    涅森夫

        通过电子邮件将正确的教程与编辑联系。 您可以将其发送给编辑之一的@nano的电子邮件
        mailto:nano.world.contact@gmail.com
        请不要像这样离开本教程
        问候

  3.   Germán

    一件事让我震惊:为什么在代码中使用“ from import *”?

    的问候!

    1.    F3NIX

      这是正确的导入方法,当这样进行导入时,您告诉它要导入模块的特定类,而不调用完整的模块。

      问候。

      1.    Germán

        我觉得有点混乱。 此外,不建议在PEP8中使用:

        “应该避免通配符导入(从模块import *),因为通配符不清楚名称空间中存在哪些名称,这会混淆阅读器和许多自动化工具……”

        1.    F3NIX

          我主要受专业代码的指导,例如Ninja-Ide,您可以在此处查看代码: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.py它也可以在PyQt中完成,但是无论如何,没有什么可以迫使您使用一种或另一种形式。

          在这里,您可以看到有关StackOverflow的讨论,内容如下:

          http://stackoverflow.com/questions/710551/import-module-or-from-module-import

          在那里,他们提到了每种样式的利弊。

          1.    F3NIX

            好的,抱歉,我不了解您,我知道,我这样做只是因为我不想对每个元素QApplication,QWidget进行解释,然后再进行概括,但是您绝对正确。

            请谅解。

          2.    Germán

            不,您听不懂或没有注意……我的意思是使用“ from module import *”,也就是说,我指的是“ asterisk”……在他们谈论其他内容的那篇StackOverflow文章中,但他们仍然强调:

            “这两种方法都是可以接受的,但不要从模块导入*中使用。”

            现在明白了吗?

          3.    费利佩

            德语是正确的。 如果您为该导入模块导入所有带有星号的内容,那么from模块导入的用途是什么。 Slds同样不错。

          4.    Germán

            嗯,好了,现在我明白了……无论如何,不​​要花我太多时间,我也是Python的初学者。 如果您停在我的博客上,您会看到我发表了一篇与您相似的帖子,但使用PyGObject使用Gtk + 3。

            问候和感谢!

        2.    F3NIX

          我在这里离开了Pep8,用西班牙语推荐使用im
          最好不要使用相对导入来从包中导入代码。 对于所有导入,始终使用包的绝对路径。 即使现在PEP 328 [7]在Python 2.5中已完全实现,仍强烈建议不要使用相对导入; 绝对导入更具可移植性,通常更具可读性。

          从模块导入类时,通常这样做是正确的
          从myclass导入MyClass
          从foo.bar.yourclass导入YourClass

          问候

          1.    猎人

            读这个: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli(核心py开发人员)建议如下:


            from PyQt4 import QtCore, QtGui

  4.   MSX

    我想要更多,因为第二部分!
    问候🙂

  5.   埃利奥时间3000

    很好的教程,也可能更适合编程。

  6.   猎人

    这是一个从头开始的界面示例(不使用QtDesigner)。

    https://github.com/xr09/metrocontador

    1.    F3NIX

      dhunter应用程序很棒,在这里我们甚至都不知道他们向我们收取多少电费,哈哈。

      1.    猎人

        谢谢您,它是一款个人使用并为他人服务的应用程序之一。 在古巴,这里的收据已按照汇率细分,很容易复制算法。

  7.   何塞·埃洛伊

    我将非常了解此课程。 我对跨平台应用程序很感兴趣,并且我认为Python + QT / Pyside组合是一个不错的选择。 对该倡议的问候和祝贺

  8.   布莱恩·罗德里格斯(Bryan Rodriguez)

    我完全按照您说的进行了所有步骤,但是当我在终端中运行app1.py应​​用程序时,它会告诉我Traceback(最近一次通话为last):
    文件“ app1.py”,第1行,在
    从PySide.QtGui导入*
    ImportError:没有名为PySide.QtGui的模块。 这是什么?

    1.    费利佩

      这是因为您使用的是python版本作为默认解释器,但没有为该版本安装pyside。

      尝试在文件开头添加:
      #!usr / bin / python3
      要不然
      #!usr / bin / python2

      我建议您将Eclipse与pydev一起使用,并正确配置解释器。
      SLDS

      1.    费利佩

        #!/ usr / bin / python3
        要不然
        #!/ usr / bin / python2

        1.    F3NIX

          PySide尚未与Python3兼容,请谨慎操作,其次,它通过交互式python控制台检查导入,因此您知道是否已安装它,并且还会安装pip。

          1.    布莱恩·罗德里格斯(Bryan Rodriguez)

            如何验证?

          2.    F3NIX

            在控制台中使用“ Python”,无论如何,我建议您输入我在帖子下面留下的库并下载“所有人的python”,您需要更多基础。

            问候和运气。

          3.    布莱恩·罗德里格斯(Bryan Rodriguez)

            非常感谢,这对我很有帮助。

          4.    毛里西奥·托巴雷斯

            看朋友F3niX我发现了这一点,看来Windows上的python 3.3.2(这是我下周之前要拥有的)它们具有32位和64位的二进制文件,我尝试了您的示例,它适用于python 3.3.2和我使用安装不同环境的PyScripter,如果您打开python 3,它将以python 3的身份运行脚本,如果打开2.7,它将以2.7的身份执行脚本,依此类推(从逻辑上讲,您必须安装该版本的python ...据了解)

            http://qt-project.org/wiki/PySide_Binaries_Windows

            我会把你留在那儿,八卦,也许它将为别人服务😀

      2.    布莱恩·罗德里格斯(Bryan Rodriguez)

        我犯了同样的错误。

        1.    Germán

          您是否安装了PySide?

          1.    布莱恩·罗德里格斯(Bryan Rodriguez)

            我已经安装了。

        2.    费利佩

          并尝试安装PyQT4,然后更改PyQT4或PyQt4的PySide行,并使其运行。 乔乔。 使用月食。 运气。

          1.    布莱恩·罗德里格斯(Bryan Rodriguez)

            我怎么做?。

  9.   卡linux

    非常感谢你 !!! 等待第二章

    1.    F3NIX

      对于这个星期五,我可能会发布它(大学让我有点吃饱)的问候。

  10.   毛里西奥·托巴雷斯

    朋友F3nIX我正在等待您的教程N°2,3,4…N hehehe

    我已经安装了非常优雅的linux,并带有PySide等待功能!

    让我们看看何时鼓励他去当新的老师😀

    1.    F3NIX

      朋友,对不起,我正在草稿中,但是工作和学习没有给我时间,我保证本周会有所收获。

      问候

  11.  

    您好,我很久以来一直对学习Python感兴趣,但是我对此有些怀疑。 我想要做的是一个应用程序,以稍微改善我所从事的家族企业的信息流程,我想为Windows做一些事情,首先是在Windows上,它可以在一台PC上全部工作,然后可以通过互联网连接到几台计算机将连接到的数据库。 GUI指导应用程序方面有很多多样性,这让我感到头晕。 您如何推荐它以使其具有现代感和吸引力? 我还将制作一些统计图和打印报告,该怎么用呢? 干杯

  12.   豪尔赫

    您好,很好,您的帖子,我有一个问题,我可以毫无问题地出售我用pyside制作的应用程序吗?

    1.    F3NIX

      好吧,许可证总是很疯狂,但是免费软件许可证也允许您出售软件,发生的情况是GPL强迫您分发代码,而LGPL并不强迫您这样做。

      无论如何,我不是许可专家。

      问候。