跳转到内容

PyKDE 编程/QT

来自维基教科书,开放世界中的开放书籍

QT 应用程序的结构

[编辑 | 编辑源代码]

一个基本的 QT 应用程序(带有小部件)

[编辑 | 编辑源代码]

您将在该应用程序中创建您的第一个窗口。

#!/usr/bin/env python
import sys
from PyQt4.QtGui  import *
from PyQt4.QtCore import *

app = QApplication(sys.argv)

win = QWidget()
win.show()

sys.exit(app.exec_())

您注意到区别了吗?您做了更少,却得到了更多。但这不要让您感到迷惑。KDE 需要这些信息,但从现在开始,KDE 中的复杂程度不会超过纯 Qt。

也许您现在发现了我们做了什么,而之前没有做的事情:我们构建了一个小部件并展示了它。默认情况下,单击标准的“x”按钮会关闭整个应用程序,但您当然可以更改这一点。您现在可以将小部件代码转移到 KDE 应用程序中,但如果您不想使用 KDE 的功能,您就不会想编写 KDE 应用程序,对吗?

让我们继续,但不要浪费空间:我现在将省略所有冗余的内容,不过您应该将它们保留在您的脚本中。我们现在关心的是这两行代码之间可以做些什么

win = QWidget()
win.show()

将我们的窗口用作其他小部件的框架怎么样?

为了做到这一点,我们需要一个所谓的布局,并将我们的 Widget 添加到其中

win = QWidget()

layout = QVBoxLayout()
layout.addWidget(QLabel("This is a Label showing text,<br> but it can contain a Picture instead"))
layout.addWidget(QPushButton("Push me"))

win.setLayout(layout)
win.show()

我们做了什么?我想是相当多的。我们已经

  • 创建并显示了我们的 Widget,就像之前一样
  • 创建了一个垂直堆叠 Widget 的布局 (VBox),并告诉 Widget 使用它
  • 向其中添加了两个 Widget,它们都包含文本。(如您所见,QLabel 甚至支持 HTML 内容,例如 <br> 换行符)
华夏公益教科书