diff --git a/docs/gui/150.md b/docs/gui/150.md index af962baf0763f0c328f6ee11aeacdc89cdd27ce5..224b215eb9bec1b6321298c7590af6150fb989dd 100644 --- a/docs/gui/150.md +++ b/docs/gui/150.md @@ -978,7 +978,7 @@ Puff::Puff(QWidget *parent) ``` -在构造函数中,我们启动计时器。 每 15 ms 会生成一个计时器事件。 +在构造函数中,我们启动计时器。 每 15ms 会生成一个计时器事件。 ``` void Puff::timerEvent(QTimerEvent *e) { diff --git a/docs/gui/151.md b/docs/gui/151.md index 8508ed63b9e82199233631d5bfa50c3d17506f6b..7be62544dbc41c8e0d38c4ccf52b4a61de6efbf7 100644 --- a/docs/gui/151.md +++ b/docs/gui/151.md @@ -8,7 +8,7 @@ ## 刻录小部件 -在下一个示例中,我们创建一个自定义的 Burning 小部件。 可以在 Nero 或 K3B 之类的应用中看到此小部件。 该小部件将从头开始创建。 +在下一个示例中,我们创建一个自定义的烧录小部件。 可以在 Nero 或 K3B 之类的应用中看到此小部件。 该小部件将从头开始创建。 `burning.h` @@ -288,7 +288,7 @@ QString num[] = { "75", "150", "225", "300", "375", "450", ``` -我们使用这些数字来构建 Burning 小部件的比例。 +我们使用这些数字来构建烧录小部件的比例。 ``` int width = size().width(); @@ -365,4 +365,4 @@ int main(int argc, char *argv[]) { Figure: The Burning widget -在 Qt4 教程的这一部分中,我们创建了一个自定义的 Burning 小部件。 \ No newline at end of file +在 Qt4 教程的这一部分中,我们创建了一个自定义的烧录小部件。 \ No newline at end of file diff --git a/docs/gui/152.md b/docs/gui/152.md index f82b4c8a5efb52c9013a3ace2189b7347f725163..88ef2a702cf5ed5a288bf9b515dd227300db4c3f 100644 --- a/docs/gui/152.md +++ b/docs/gui/152.md @@ -1,10 +1,10 @@ -# Qt4 中的 Breakout 游戏 +# Qt4 中的打砖块游戏 > 原文: [http://zetcode.com/gui/qt4/breakoutgame/](http://zetcode.com/gui/qt4/breakoutgame/) -在 Qt4 教程的这一部分中,我们创建一个简单的 Breakout 游戏克隆。 +在 Qt4 教程的这一部分中,我们创建一个简单的打砖块游戏克隆。 -Breakout 是 Atari Inc.开发的一款街机游戏。该游戏创建于 1976 年。在该游戏中,玩家移动桨叶并弹跳球。 目的是销毁窗口顶部的砖块。 可以在此处下载游戏图像。 +打砖块是 Atari Inc.开发的一款街机游戏。该游戏创建于 1976 年。在该游戏中,玩家移动桨叶并弹跳球。 目的是销毁窗口顶部的砖块。 可以在此处下载游戏图像。 ## 开发 @@ -165,7 +165,7 @@ class Brick { ``` -这是砖对象的头文件。 如果销毁了积木,则`destroyed`变量将设置为 true。 +这是砖对象的头文件。 如果销毁了积木,则`destroyed`变量将设置为`true`。 `brick.cpp` @@ -796,7 +796,7 @@ for (int i=0; i<5; i++) { ``` -在 Breakout 对象的构造函数中,我们实例化了三十个砖块。 +在打砖块对象的构造函数中,我们实例化了三十个砖块。 ``` void Breakout::paintEvent(QPaintEvent *e) { @@ -882,7 +882,7 @@ void Breakout::moveObjects() { ``` -`moveObjects()`方法移动球和桨对象。 他们自己的 move 方法被调用。 +`moveObjects()`方法移动球和桨对象。 他们自己的移动方法被调用。 ``` void Breakout::keyReleaseEvent(QKeyEvent *e) { @@ -969,7 +969,7 @@ void Breakout::startGame() { ``` -`startGame()`方法重置球和桨对象; 他们被转移到他们的初始位置。 在 for 循环中,我们将每个积木的`destroyed`标志重置为 false,从而将它们全部显示在窗口中。 `gameOver`,`gameWon`和`gameStarted`变量获得其初始布尔值。 最后,使用`startTimer()`方法启动计时器。 +`startGame()`方法重置球和桨对象; 他们被转移到他们的初始位置。 在`for`循环中,我们将每个积木的`destroyed`标志重置为`false`,从而将它们全部显示在窗口中。 `gameOver`,`gameWon`和`gameStarted`变量获得其初始布尔值。 最后,使用`startTimer()`方法启动计时器。 ``` void Breakout::pauseGame() { @@ -1076,4 +1076,4 @@ int main(int argc, char *argv[]) { Figure: The Breakout game -这是 Qt4 中的 Breakout 游戏。 \ No newline at end of file +这是 Qt4 中的打砖块游戏。 \ No newline at end of file diff --git a/docs/gui/153.md b/docs/gui/153.md index adc2ed8b8c39c53f46c72590f13d7d0b4eddb81d..f2ba376c9d69204b441d671b7727ed28f08c9215 100644 --- a/docs/gui/153.md +++ b/docs/gui/153.md @@ -25,7 +25,7 @@ ## PySide -PySide 是 Python 库,用于创建跨平台的图形用户界面。 它是 Qt 框架的 Python 绑定。 Qt 库是功能最强大的 GUI 库之一。 它是由 Digia 和 Qt Project 开发的。 +PySide 是 Python 库,用于创建跨平台的图形用户界面。 它是 Qt 框架的 Python 绑定。 Qt 库是功能最强大的 GUI 库之一。 它是由 Digia 和 Qt 项目开发的。 [Tweet](https://twitter.com/share) diff --git a/docs/gui/154.md b/docs/gui/154.md index 6ff1c907fe89b6b54101eb6c364fa557b21e7919..cde432972fe5bd0456c03c4e179354eaa2a67940 100644 --- a/docs/gui/154.md +++ b/docs/gui/154.md @@ -28,6 +28,6 @@ Python 是最受欢迎的编程语言之一。 根据 [langpop.com](http://langp ## Python 工具包 -为了创建现代的图形用户界面,Python 程序员可以在以下不错的选项中进行选择:PySide,PyQt4,Python / Gnome(以前的 PyGTK)和 wxPython。 +为了创建现代的图形用户界面,Python 程序员可以在以下不错的选项中进行选择:PySide,PyQt4,Python/Gnome(以前的 PyGTK)和 wxPython。 本章是对 PySide 工具箱的介绍。 \ No newline at end of file diff --git a/docs/gui/155.md b/docs/gui/155.md index a7324c2327e4abb107cd7fe053376f7b139d28ca..436c0b4ea12f2de16e9cbf9b41d76b2af6a0b9d3 100644 --- a/docs/gui/155.md +++ b/docs/gui/155.md @@ -43,7 +43,7 @@ app = QtGui.QApplication(sys.argv) ``` -每个 PySide 应用都必须创建一个应用对象。 该应用对象位于 QtGui 模块中。 `sys.argv`参数是命令行中的参数列表。 可以从外壳运行 Python 脚本。 这是一种我们可以控制脚本启动的方式。 +每个 PySide 应用都必须创建一个应用对象。 该应用对象位于`QtGui`模块中。 `sys.argv`参数是命令行中的参数列表。 可以从外壳运行 Python 脚本。 这是一种我们可以控制脚本启动的方式。 ``` wid = QtGui.QWidget() @@ -78,7 +78,7 @@ sys.exit(app.exec_()) ``` -最后,我们进入应用的主循环。 事件处理从这一点开始。 mainloop 从窗口系统接收事件,并将其分配给应用小部件。 如果调用`exit()`方法或主窗口小部件被销毁,则主循环结束。 `sys.exit()`方法可确保干净退出。 将告知环境应用如何结束。 +最后,我们进入应用的主循环。 事件处理从这一点开始。 主循环从窗口系统接收事件,并将其分配给应用小部件。 如果调用`exit()`方法或主窗口小部件被销毁,则主循环结束。 `sys.exit()`方法可确保干净退出。 将告知环境应用如何结束。 您想知道为什么`exec_()`方法下划线吗? 一切都有意义。 显然是因为`exec`是 Python 关键字。 因此,使用了`exec_()`。 @@ -144,7 +144,7 @@ class Example(QtGui.QWidget): ``` -面向对象编程中最重要的三件事是类,数据和方法。 在这里,我们创建一个名为 Example 的新类。 Example 类继承自`QtGui.QWidget`类。 这意味着我们必须调用两个构造函数。 第一个用于 Example 类,第二个用于继承类。 使用`super()`方法调用第二个。 +面向对象编程中最重要的三件事是类,数据和方法。 在这里,我们创建一个名为`Example`的新类。 `Example`类继承自`QtGui.QWidget`类。 这意味着我们必须调用两个构造函数。 第一个用于`Example`类,第二个用于继承类。 使用`super()`方法调用第二个。 ``` self.setGeometry(300, 300, 250, 150) @@ -334,7 +334,7 @@ qbtn = QtGui.QPushButton('Quit', self) ``` -我们创建一个按钮。 该按钮是`QtGui.QPushButton`类的实例。 构造函数的第一个参数是按钮的标签。 第二个参数是父窗口小部件。 父窗口小部件是 Example 窗口小部件,通过继承它是`QtGui.QWidget`。 +我们创建一个按钮。 该按钮是`QtGui.QPushButton`类的实例。 构造函数的第一个参数是按钮的标签。 第二个参数是父窗口小部件。 父窗口小部件是`Example`窗口小部件,通过继承它是`QtGui.QWidget`。 ``` qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit) @@ -492,7 +492,7 @@ self.center() ``` -将使窗口居中的代码位于自定义 center()方法中。 +将使窗口居中的代码位于自定义`center()`方法中。 ``` qr = self.frameGeometry() @@ -520,6 +520,6 @@ self.move(qr.topLeft()) ``` -我们将应用窗口的左上角移动到 qr 矩形的左上角,从而将窗口居中放置在屏幕上。 +我们将应用窗口的左上角移动到`qr`矩形的左上角,从而将窗口居中放置在屏幕上。 在 PySide 教程的这一部分中,我们介绍了一些基础知识。 \ No newline at end of file diff --git a/docs/gui/156.md b/docs/gui/156.md index 4c5a9c069dc1e593a63a3505f74640f7c8361bf6..c0645317964f1db6f7816f21afdfc5b34e2a1c89 100644 --- a/docs/gui/156.md +++ b/docs/gui/156.md @@ -62,7 +62,7 @@ self.statusBar().showMessage('Ready') ``` -要获取状态栏,我们调用`QtGui.QMainWindow`类的`statusBar()`方法。 该方法的第一次调用将创建一个状态栏。 后续调用返回 statusbar 对象。 `showMessage()`在状态栏上显示一条消息。 +要获取状态栏,我们调用`QtGui.QMainWindow`类的`statusBar()`方法。 该方法的第一次调用将创建一个状态栏。 后续调用返回状态栏对象。 `showMessage()`在状态栏上显示一条消息。 ## 菜单栏 diff --git a/docs/gui/158.md b/docs/gui/158.md index 48e0bc270353eb67dff165b5aee42e3d70591b8c..ec47cbdb62a46e493c7cd2ffb79dc8a7cd4553f7 100644 --- a/docs/gui/158.md +++ b/docs/gui/158.md @@ -305,7 +305,7 @@ class Communicate(QtCore.QObject): ``` -我们基于`QtCore.QObject`创建一个类。 实例化时会创建一个 closeApp 信号。 +我们基于`QtCore.QObject`创建一个类。 实例化时会创建一个`closeApp`信号。 ``` self.c = Communicate() @@ -313,7 +313,7 @@ self.c.closeApp.connect(self.close) ``` -创建 Communicate 类的实例。 我们将`QtGui.QMainWindow`的`close()`槽连接到 closeApp 信号。 +创建`Communicate`类的实例。 我们将`QtGui.QMainWindow`的`close()`槽连接到 closeApp 信号。 ``` def mousePressEvent(self, event): diff --git a/docs/gui/159.md b/docs/gui/159.md index 8782cf33f18fc23d01c2784db23776bb2e1c61f7..0435aa95fcc4cc6a1a33a7b9c317fddbb06db5a0 100644 --- a/docs/gui/159.md +++ b/docs/gui/159.md @@ -72,7 +72,7 @@ text, ok = QtGui.QInputDialog.getText(self, 'Input Dialog', ``` -这行显示输入对话框。 第一个字符串是对话框标题,第二个字符串是对话框中的消息。 对话框返回输入的文本和布尔值。 如果单击“确定”按钮,则布尔值将为 true,否则为 false。 +这行显示输入对话框。 第一个字符串是对话框标题,第二个字符串是对话框中的消息。 对话框返回输入的文本和布尔值。 如果单击“确定”按钮,则布尔值将为`true`,否则为`false`。 ``` if ok: @@ -259,7 +259,7 @@ font, ok = QtGui.QFontDialog.getFont() ``` -在这里我们弹出字体对话框。 `getFont()`方法返回字体名称和 ok 参数。 如果用户单击“确定”,则等于“真”。 否则为 False。 +在这里我们弹出字体对话框。 `getFont()`方法返回字体名称和`ok`参数。 如果用户单击“确定”,则等于`True`。 否则为`False`。 ``` if ok: diff --git a/docs/gui/160.md b/docs/gui/160.md index 7786641a47d54101f52a73048d2e364371f2944a..b67357be776107002c3d96a116e27bdfe21710a2 100644 --- a/docs/gui/160.md +++ b/docs/gui/160.md @@ -101,9 +101,9 @@ def changeTitle(self, state): Figure: QtGui.QCheckBox -## `ToggleButton` +## 开关按钮 -PySide 没有用于 ToggleButton 的小部件。 要创建 ToggleButton,我们在特殊模式下使用`QtGui.QPushButton`。 ToggleButton 是具有两种状态的按钮。 已按下但未按下。 通过单击可以在这两种状态之间切换。 在某些情况下此功能非常合适。 +PySide 没有用于开关按钮的小部件。 要创建开关按钮,我们在特殊模式下使用`QtGui.QPushButton`。 开关按钮是具有两种状态的按钮。 已按下但未按下。 通过单击可以在这两种状态之间切换。 在某些情况下此功能非常合适。 ``` #!/usr/bin/python @@ -206,14 +206,14 @@ greenb.setCheckable(True) ``` -要创建 ToggleButton,我们创建一个`QtGui.QPushButton`并通过调用`setCheckable()`方法使其可检查。 +要创建开关按钮,我们创建一个`QtGui.QPushButton`并通过调用`setCheckable()`方法使其可检查。 ``` greenb.clicked[bool].connect(self.setColor) ``` -我们将`clicked[bool]`信号连接到用户定义的方法。 请注意,此信号类型将 bool 参数发送给该方法。 参数值是 true 还是 false,取决于按钮的状态,例如 是否检查/切换。 +我们将`clicked[bool]`信号连接到用户定义的方法。 请注意,此信号类型将`bool`参数发送给该方法。 参数值是 true 还是 false,取决于按钮的状态,例如 是否检查/切换。 ``` source = self.sender() @@ -331,7 +331,7 @@ sld.valueChanged[int].connect(self.changeValue) ``` -我们将`valueChanged[int]`信号连接到用户定义的 changeValue()方法。 +我们将`valueChanged[int]`信号连接到用户定义的`changeValue()`方法。 ``` if value == 0: @@ -348,7 +348,7 @@ Figure: QtGui.QSlider widget ## `QtGui.QProgressBar` -进度条是当我们处理冗长的任务时使用的小部件。 它具有动画效果,以便用户知道我们的任务正在进行中。 `QtGui.QProgressBar`小部件在 PySide 工具箱中提供了水平或垂直进度条。 程序员可以为进度条设置最小值和最大值。 默认值为 0、99。 +进度条是当我们处理冗长的任务时使用的小部件。 它具有动画效果,以便用户知道我们的任务正在进行中。 `QtGui.QProgressBar`小部件在 PySide 工具箱中提供了水平或垂直进度条。 程序员可以为进度条设置最小值和最大值。 默认值为 0,99。 ``` #!/usr/bin/python @@ -454,7 +454,7 @@ def timerEvent(self, e): ``` -每个`QtCore.QObject`及其子代都有一个`timerEvent()`事件处理程序。 为了对计时器事件做出反应,我们重新实现了事件处理程序。 我们更新 self.step 变量,并为进度栏小部件设置一个新值。 +每个`QtCore.QObject`及其子代都有一个`timerEvent()`事件处理程序。 为了对计时器事件做出反应,我们重新实现了事件处理程序。 我们更新`self.step`变量,并为进度栏小部件设置一个新值。 ``` def doAction(self): diff --git a/docs/gui/161.md b/docs/gui/161.md index 44c0ff89eb11aff05a831260804063cf8fb4843b..0bdeab4b88b82bd5dd48f3a70ab3b70bba918810 100644 --- a/docs/gui/161.md +++ b/docs/gui/161.md @@ -265,14 +265,14 @@ splitter2.addWidget(splitter1) ``` -我们还可以将 splitter 添加到另一个 splitter 小部件。 +我们还可以将分割器添加到另一个分割器小部件。 ``` QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('Cleanlooks')) ``` -我们使用 Cleanlooks 风格。 在某些样式中,框架不可见。 +我们使用`Cleanlooks`风格。 在某些样式中,框架不可见。 ![QtGui.QSplitter widget](img/7668afd2998ab9b9957d67c039740ef9.jpg) diff --git a/docs/gui/162.md b/docs/gui/162.md index a846d9036bd719595f7c34136b43b59951099fa5..2929a42030cfc272b36753c00de29421c065b2fa 100644 --- a/docs/gui/162.md +++ b/docs/gui/162.md @@ -90,7 +90,7 @@ class Button(QtGui.QPushButton): ``` -为了在`QtGui.QPushButton`小部件上放置文本,我们必须重新实现一些方法。 因此,我们创建了自己的 Button 类,该类将从`QtGui.QPushButton`类继承。 +为了在`QtGui.QPushButton`小部件上放置文本,我们必须重新实现一些方法。 因此,我们创建了自己的`Button`类,该类将从`QtGui.QPushButton`类继承。 ``` self.setAcceptDrops(True) @@ -117,7 +117,7 @@ def dropEvent(self, e): ``` -通过重新实现`dropEvent()`方法,我们将定义在 drop 事件上将要执行的操作。 在这里,我们更改按钮小部件的文本。 +通过重新实现`dropEvent()`方法,我们将定义在放置事件上将要执行的操作。 在这里,我们更改按钮小部件的文本。 ``` qe = QtGui.QLineEdit('', self) @@ -228,7 +228,7 @@ class Button(QtGui.QPushButton): ``` -我们创建一个 Button 类,该类将从`QtGui.QPushButton`派生。 我们还重新实现了`QtGui.QPushButton`的两种方法`mouseMoveEvent()`和`mousePressEvent()`。 mouseMoveEvent()方法是拖动&放置操作开始的地方。 +我们创建一个`Button`类,该类将从`QtGui.QPushButton`派生。 我们还重新实现了`QtGui.QPushButton`的两种方法`mouseMoveEvent()`和`mousePressEvent()`。`mouseMoveEvent()`方法是拖动&放置操作开始的地方。 ``` if event.buttons() != QtCore.Qt.RightButton: