在Ubuntu 14.04.2 LTS上安装Qt

来源:互联网 发布:58上面网络销售可靠吗 编辑:程序博客网 时间:2024/05/18 02:27

Qt是一个跨平台的应用程序框架,广泛用于开发具有GUI界面的应用软件以及命令行工具。 几乎所有操作系统都可以使用Qt,如Windows,Mac OS X,Android等。 用于开发Qt应用程序的主要编程语言是C ++,但是可以使用诸如Python,Ruby,Java等语言的绑定。 我们来看看如何在Ubuntu 14.04.2上安装Qt SDK。 我们将在Ubuntu中从Advance Packaging Tool(APT)中安装Qt。 APT已经随Ubuntu安装。 所以为了安装Qt / Qt SDK,我们可以简单地使用以下命令,它将从Ubuntu软件包存储库安装Qt SDK及其所需的依赖项。 我们可以使用以下命令安装Qt版本4:

sudo apt-get install qt-sdk

该命令将安装我们项目所需的整个Qt SDK及其库。 Ubuntu存储库中可用的软件包可能不是最新版本。 要获得最新版本的Qt,我们可以从以下链接下载各种操作系统平台的Qt在线或离线安装程序:
http://qt-project.org/downloads
在我们的系统上安装Qt后,我们可以看到我们如何使用Qt开发GUI,并与Python进行接口。

使用Qt的Python绑定
让我们看看我们如何界定Python和Qt。 通常,Python中有两个可用于连接Qt用户界面的模块。 两个最流行的框架是:
PyQt
PySide

PyQt:
PyQt是Qt跨平台的大多数Python绑定之一。 PyQt由Riverbank Computing Limited开发和维护。 它提供对Qt版本4和Qt版本5的绑定,并附带GPL(版本2或3)以及商业许可证。 PyQt可用于Qt版本4和5,分别称为PyQt4和PyQt5。 这两个模块与Python版本2和3兼容。PyQt包含620多个类,涵盖用户界面,XML,网络通信,网络等。
PyQt可在Windows,Linux和Mac OS X上使用。安装Qt SDK和Python以安装PyQt是一个先决条件。 Windows和Mac OS X的二进制文件可从以下链接获得:

http://www.riverbankcomputing.com/software/pyqt/download

我们可以看到如何使用Python 2.7在Ubuntu 14.04.2上安装PyQt4。

在Ubuntu 14.04.2 LTS上安装PyQt

如果要在Ubuntu / Linux上安装PyQt,请使用以下命令。 该命令将安装PyQt库,它的依赖项和一些Qt工具:

sudo apt-get install python-qt4 pyqt4-dev-tools

PySide

PySide是一个为Qt框架提供Python绑定的开源软件项目。 PySide项目由诺基亚发起,并为多个平台提供了一整套Qt绑定。 PySide中使用的包装Qt库的技术与PyQt不同,但两者的API类似。 PySide目前不支持Qt 5. PySide可用于Windows,Linux和Mac OS X.以下链接将指导您在Windows和Mac OS X上设置PySide:
http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads
PySide的先决条件与PyQt相同。 看看我们如何在Ubuntu 14.04.2 LTS上安装PySide。
在Ubuntu 14.04.2 LTS上安装PySide
PySide软件包在Ubuntu软件包存储库中可用。 以下命令将在Ubuntu上安装PySide模块和Qt工具:

sudo apt-get install python-pyside pyside-tools

使用PyQt和PySide

安装PyQt和PySide软件包后,我们可以看到如何使用PyQt和PySide编写一个Hello World GUI。 PyQt和PySide之间的主要区别只在于某些命令; 大部分步骤是一样的。 让我们看看如何制作一个Qt GUI并将其转换为Python代码。

介绍Qt Designer

Qt Designer是将控件设计和插入Qt GUI的工具。 Qt GUI基本上是一个包含其组件和控件信息的XML文件。 使用GUI的第一步就是设计。 Qt Designer工具提供了各种选项来制作优秀的GUI。

在终端中输入命令designer-qt4启动Qt Designer。 以下图像显示运行此命令后将看到的内容:

designer-qt4

这里写图片描述
上图显示了Qt设计器界面。 从“新建表单”窗口中选择“窗口小部件”选项,然后单击“创建”按钮。 这将创建一个空的小部件; 我们可以将各种GUI控件从Qt 4设计器的左侧拖放到空的小部件。 Qt小部件是Qt GUI的基本构建块。

下图显示了从Qt Designer的左侧窗口拖动的一个PushButton的表单:这里写图片描述
我们要构建的Hello World应用程序有一个PushButton,当我们点击PushButton,一个Hello World消息将被打印在终端上。 在构建Hello World应用程序之前,我们需要了解什么是Qt信号和插槽,因为我们必须使用这些功能来构建Hello World应用程序。

Qt信号和插槽
在Qt中,使用信号和插槽功能处理GUI事件。 当事件发生时,从GUI发出信号。 Qt Widget具有许多预定义的信号,用户可以为GUI事件添加自定义信号。 插槽是响应于特定信号而被调用的功能。 在这个例子中,我们使用PushButton的clicked()信号并为此信号创建一个自定义插槽。 我们可以在这个自定义函数中编写自己的代码。 让我们看看如何创建一个按钮,将信号连接到一个插槽,并将整个GUI转换成Python。

以下是创建Hello World GUI应用程序所涉及的步骤:

1.从Qt Designer创建一个PushButton到空的Form。
2.为按钮单击事件分配一个插槽,该事件发出一个叫做clicked()的信号。
3.在.ui扩展名中保存设计的UI文件。
4.将UI文件转换为Python。
5.写自定义插槽的定义。
6.在定义的插槽/功能内打印Hello World消息。

我们已经将一个按钮从Qt Designer拖动到一个空的表单。 按F4键在按钮上插入插槽。 当我们按F4时,PushButton变成红色,我们可以拖动一行

按钮并将地面符号()放在主窗口中。 这在下面的屏幕截图中显示:
这里写图片描述
从左侧选择clicked()信号,然后单击Edit ..按钮创建一个新的自定义插槽。 当我们点击Edit ..按钮时,弹出另一个窗口来创建一个自定义的功能。 您可以通过单击+符号创建自定义功能。

我们创建了一个名为message()的自定义插槽,如下面的截图所示:
这里写图片描述
点击OK按钮,将UI文件保存为hello_world.ui,并退出Qt设计器。 保存UI文件后,让我们看看如何将Qt UI文件转换为Python文件。
将UI文件转换为Python代码

在设计UI文件之后,我们可以将UI文件转换为相当的Python代码。 转换使用pyuic编译器完成。 安装PyQt / PySide时,我们已经安装了这个工具。 以下是将Qt UI文件转换为Python文件的命令。

我们必须对PyQt和PySide使用不同的命令。 以下命令将UI转换为PyQt等效文件:

pyuic4 -x hello_world.ui -o hello_world.py

pyuic4是一个UI编译器,用于将UI文件转换为等效的Python代码。 我们需要在-x参数之后提到UI文件名,并在-o参数之后提及输出文件名。

PySide命令没有多少变化,而不是pyuic4,PySide使用pyside-uic将UI文件转换为Python文件。 其余的论点是一样的:

pyside-uic -x hello_world.ui -o hello_world.py

上述命令将为UI文件生成一个等效的Python代码。 如果我们运行这个Python代码,那么在Qt Designer中设计的UI会弹出来。 生成的脚本将不会定义自定义函数message()。 我们应该添加这个自定义函数来生成代码。 以下过程将引导您添加自定义功能; 所以当您点击按钮时,自定义功能消息()将被执行。

将插槽定义添加到PyQt代码

这里给出了PyQt生成的Python代码。 除了导入模块名称之外,pyuic4和pyside-uic生成的代码是一样的。 所有其他部分都是一样的。 使用PyQt生成的代码的解释也适用于PySide代码。 从上述转换生成的代码如下。 代码结构和参数可以根据您设计的UI文件进行更改:

1.代码将从if name == “main“:.开始执行: PyQt代码中的第一件事是创建一个QApplication对象。 QApplication类管理GUI应用程序的控制流程和主要设置。 QApplication类包含主事件循环,其中来自Windows系统和其他来源的所有事件都将被处理和调度。 它还处理应用程序的初始化和最终化。 QApplication类在QtGui模块中。 此代码创建一个名为app的QApplication对象。
2.Form = QtGui.QWidget()行从QtGui模块中存在的QWidget类创建一个名为Form的对象。 QWidget类是Qt的所有用户界面对象的基类。 它可以从主Windows系统接收鼠标和键盘事件。
3.ui = Ui_Form()行从代码中定义的Ui_Form()类创建一个名为ui的对象。 Ui_Form()对象可以接受我们在上一行中创建的QWidget类,它可以将按钮,文本,按钮控件和其他UI组件添加到此QWidget对象中。 Ui_Form()类包含两个函数:setupUi()和retranslateUi()。 我们可以将QWidget对象传递给名为setupUi()的函数。 此功能将在此小部件对象上添加UI组件,例如按钮,分配信号插槽等。 如果需要,那么重新传递()函数会将UI的语言翻译成其他语言,例如,如果我们需要从英语到西班牙语的翻译,我们可以在此功能中提及相应的西班牙语单词。
4.Form.show()行显示带有按钮和文本的最终窗口。

接下来是创建插槽功能,打印Hello World消息。 插槽定义是在Ui_Form()类中创建的。 以下步骤将名为message()的插槽插入到类中。
message()函数定义如下:

def message(self):        print "Hello World"

这应该作为一个函数插入到Ui_Form()类中。 此外,更改Ui_Form()类中的setupUi()函数中的以下行:

Form.message参数应替换为self.message参数。前一行将PushBbutton信号clicked()连接到我们已经插入到Ui_Form()类中的self.message()插槽。

启动和运行Hello World GUI应用程序

使用self.message参数替换Form.message参数后,我们可以执行代码,输出如下所示:
这里写图片描述

当我们点击按钮时,它将打印Hello world消息。 这是关于使用Python和Qt设置自定义GUI。

在下一节中,我们将看到我们为机器人设计的实际GUI。

原创粉丝点击