Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
zetcode-zh
提交
5a080c69
Z
zetcode-zh
项目概览
OpenDocCN
/
zetcode-zh
10 个月 前同步成功
通知
2
Star
157
Fork
40
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zetcode-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5a080c69
编写于
6月 20, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-20 17:39:36
上级
adb817ba
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
68 addition
and
68 deletion
+68
-68
docs/gui/107.md
docs/gui/107.md
+1
-1
docs/gui/154.md
docs/gui/154.md
+1
-1
docs/gui/166.md
docs/gui/166.md
+3
-3
docs/gui/167.md
docs/gui/167.md
+5
-5
docs/gui/168.md
docs/gui/168.md
+3
-3
docs/gui/169.md
docs/gui/169.md
+3
-3
docs/gui/170.md
docs/gui/170.md
+3
-3
docs/gui/171.md
docs/gui/171.md
+3
-3
docs/gui/172.md
docs/gui/172.md
+3
-3
docs/gui/173.md
docs/gui/173.md
+2
-2
docs/gui/270.md
docs/gui/270.md
+1
-1
docs/gui/40.md
docs/gui/40.md
+1
-1
docs/gui/41.md
docs/gui/41.md
+3
-3
docs/gui/42.md
docs/gui/42.md
+2
-2
docs/gui/43.md
docs/gui/43.md
+1
-1
docs/gui/44.md
docs/gui/44.md
+1
-1
docs/gui/45.md
docs/gui/45.md
+2
-2
docs/gui/46.md
docs/gui/46.md
+9
-9
docs/gui/47.md
docs/gui/47.md
+9
-9
docs/gui/48.md
docs/gui/48.md
+2
-2
docs/gui/58.md
docs/gui/58.md
+1
-1
docs/gui/72.md
docs/gui/72.md
+1
-1
docs/gui/99.md
docs/gui/99.md
+1
-1
docs/gui/SUMMARY.md
docs/gui/SUMMARY.md
+7
-7
未找到文件。
docs/gui/107.md
浏览文件 @
5a080c69
...
...
@@ -1050,7 +1050,7 @@ if __name__ == '__main__':
```
该示例使用
`wx.lib.mixins.listctrl.CheckListCtrl`
创建
存储
库 UI。
该示例使用
`wx.lib.mixins.listctrl.CheckListCtrl`
创建
仓
库 UI。
```
py
class
CheckListCtrl
(
wx
.
ListCtrl
,
CheckListCtrlMixin
,
ListCtrlAutoWidthMixin
):
...
...
docs/gui/154.md
浏览文件 @
5a080c69
...
...
@@ -24,7 +24,7 @@ Python 编程语言支持多种编程样式。 它不会强迫程序员采用特
Python 编程语言的官方网站是
[
python.org
](
http://python.org
)
Python 是最受欢迎的编程语言之一。 根据
[
langpop.com
](
http://langpop.com/
)
,Python 排在第六位。
[
TIOBE 索引
](
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
)
将 Python 放在第 8 位。 在
[
github.com
](
https://github.com/languages
)
(一种流行的软件项目
存储
库)上,Python 是第三流行的语言,在托管的所有项目中占 9% 的份额。
Python 是最受欢迎的编程语言之一。 根据
[
langpop.com
](
http://langpop.com/
)
,Python 排在第六位。
[
TIOBE 索引
](
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
)
将 Python 放在第 8 位。 在
[
github.com
](
https://github.com/languages
)
(一种流行的软件项目
仓
库)上,Python 是第三流行的语言,在托管的所有项目中占 9% 的份额。
## Python 工具包
...
...
docs/gui/166.md
浏览文件 @
5a080c69
# Tcl
/
Tk 教程
# Tcl
/
Tk 教程
> 原文: [http://zetcode.com/gui/tcltktutorial/](http://zetcode.com/gui/tcltktutorial/)
这是 Tcl
/
Tk 教程。 在本教程中,您将学习使用 Tcl 和 Tk 进行编程的基础知识。 本教程适合初学者和中级程序员。
这是 Tcl
/
Tk 教程。 在本教程中,您将学习使用 Tcl 和 Tk 进行编程的基础知识。 本教程适合初学者和中级程序员。
## 目录
...
...
@@ -20,7 +20,7 @@
## Tk
Tk 是一个开源的,跨平台的小部件工具包,它提供了用于构建图形用户界面(GUI)的基本元素库。 Tk 的第一个公共发行版于 1991 年。具有其他几种语言的绑定,包括 Ada,Perl,Ruby,Python 或 Common Lisp。 Tk 库通常以其主要语言称为 Tcl
/
Tk。
Tk 是一个开源的,跨平台的小部件工具包,它提供了用于构建图形用户界面(GUI)的基本元素库。 Tk 的第一个公共发行版于 1991 年。具有其他几种语言的绑定,包括 Ada,Perl,Ruby,Python 或 Common Lisp。 Tk 库通常以其主要语言称为 Tcl
/
Tk。
[
Tweet
](
https://twitter.com/share
)
...
...
docs/gui/167.md
浏览文件 @
5a080c69
# Tcl
/
Tk 简介
# Tcl
/
Tk 简介
> 原文: [http://zetcode.com/gui/tcltktutorial/introduction/](http://zetcode.com/gui/tcltktutorial/introduction/)
在 Tcl
/
Tk 教程的这一部分中,我们将介绍 Tk 工具包并创建我们的第一个程序。
在 Tcl
/
Tk 教程的这一部分中,我们将介绍 Tk 工具包并创建我们的第一个程序。
本教程的目的是帮助您开始使用 Tcl 语言的 Tk 工具包。 可以在此处下载本教程中使用的图像。 我使用了 Gnome 项目的 Tango 图标包中的一些图标。
## Tk
Tk 是一个开源的,跨平台的小部件工具包,它提供了用于构建图形用户界面(GUI)的基本元素库。 Tk 于 1991 年首次公开发行。Tk 是 Tcl 语言的扩展。 这意味着 Tk 通过用于构建用户界面的其他命令扩展了 Tcl 语言。 有几种其他语言的绑定,包括 Ada,Perl,Ruby,Python 或 Common Lisp。 Tk 库通常以其主要语言称为 Tcl
/
Tk。
Tk 是一个开源的,跨平台的小部件工具包,它提供了用于构建图形用户界面(GUI)的基本元素库。 Tk 于 1991 年首次公开发行。Tk 是 Tcl 语言的扩展。 这意味着 Tk 通过用于构建用户界面的其他命令扩展了 Tcl 语言。 有几种其他语言的绑定,包括 Ada,Perl,Ruby,Python 或 Common Lisp。 Tk 库通常以其主要语言称为 Tcl
/
Tk。
## Tcl
...
...
@@ -39,7 +39,7 @@ wm geometry . 250x150+300+300
```
`wish`
是 Tcl
/
Tk 解释器。 它了解 Tcl 和 Tk 命令。
`wish`
是 Tcl
/
Tk 解释器。 它了解 Tcl 和 Tk 命令。
```
frame .fr
...
...
@@ -166,4 +166,4 @@ Figure: Quit button
[
wikipedia.org
](
http://wikipedia.org
)
和
[
tcl.tk
](
http://tcl.tk
)
用于创建本教程。
本节是对 Tcl / Tk 的介绍。
\ No newline at end of file
本节是对 Tcl/Tk 的介绍。
\ No newline at end of file
docs/gui/168.md
浏览文件 @
5a080c69
# Tcl
/
Tk 中的布局管理
# Tcl
/
Tk 中的布局管理
> 原文: [http://zetcode.com/gui/tcltktutorial/layout/](http://zetcode.com/gui/tcltktutorial/layout/)
在 Tcl
/
Tk 编程教程的这一部分中,我们将介绍布局管理器。
在 Tcl
/
Tk 编程教程的这一部分中,我们将介绍布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些小部件以及如何在应用中组织这些小部件。 为了组织小部件,我们使用专门的不可见对象,称为布局管理器。
...
...
@@ -363,4 +363,4 @@ grid rowconfigure .fr 5 -pad 7
Figure: Windows example
在 Tcl / Tk 教程的这一部分中,我们提到了小部件的布局管理。
\ No newline at end of file
在 Tcl/Tk 教程的这一部分中,我们提到了小部件的布局管理。
\ No newline at end of file
docs/gui/169.md
浏览文件 @
5a080c69
# Tcl
/
Tk 小部件
# Tcl
/
Tk 小部件
> 原文: [http://zetcode.com/gui/tcltktutorial/widgets/](http://zetcode.com/gui/tcltktutorial/widgets/)
在 Tcl
/
Tk 教程的这一部分中,我们将介绍一些基本的 Tk 小部件。 我们将为
`checkbutton`
,
`label`
,
`scale`
和
`listbox`
小部件提供示例。
在 Tcl
/
Tk 教程的这一部分中,我们将介绍一些基本的 Tk 小部件。 我们将为
`checkbutton`
,
`label`
,
`scale`
和
`listbox`
小部件提供示例。
小部件是 GUI 应用的基本构建块。 多年来,几个小部件已成为所有 OS 平台上所有工具包中的标准。 例如,按钮,复选框或滚动条。 其中一些名称可能不同。 例如,一个复选框在 Tk 中称为复选框。 Tk 具有一小组可满足基本编程需求的小部件。 可以将更多专门的窗口小部件创建为自定义窗口小部件。
...
...
@@ -293,4 +293,4 @@ proc setLabel { idx } {
Figure: listbox widget
在 Tcl / Tk 教程的这一部分中,我们介绍了几个 Tk 小部件。
\ No newline at end of file
在 Tcl/Tk 教程的这一部分中,我们介绍了几个 Tk 小部件。
\ No newline at end of file
docs/gui/170.md
浏览文件 @
5a080c69
# Tcl
/
Tk 中的菜单和工具栏
# Tcl
/
Tk 中的菜单和工具栏
> 原文: [http://zetcode.com/gui/tcltktutorial/menustoolbars/](http://zetcode.com/gui/tcltktutorial/menustoolbars/)
在 Tcl
/
Tk 教程的这一部分中,我们将使用菜单和工具栏。
在 Tcl
/
Tk 教程的这一部分中,我们将使用菜单和工具栏。
菜单栏是 GUI 应用中最可见的部分之一。 它是位于各个菜单中的一组命令。 在控制台应用中,我们必须记住许多奥术命令,在这里,我们将大多数命令分组为逻辑部分。 有公认的标准可以进一步减少学习新应用的时间。 菜单将我们可以在应用中使用的命令分组。 使用工具栏可以快速访问最常用的命令。
...
...
@@ -276,4 +276,4 @@ pack .toolbar -fill x
Figure: Toolbar
在 Tcl / Tk 教程的这一部分中,我们展示了如何创建带有菜单和菜单项以及工具栏的菜单栏。
\ No newline at end of file
在 Tcl/Tk 教程的这一部分中,我们展示了如何创建带有菜单和菜单项以及工具栏的菜单栏。
\ No newline at end of file
docs/gui/171.md
浏览文件 @
5a080c69
# Tcl
/
Tk 中的对话框
# Tcl
/
Tk 中的对话框
> 原文: [http://zetcode.com/gui/tcltktutorial/dialogs/](http://zetcode.com/gui/tcltktutorial/dialogs/)
在 Tcl
/
Tk 教程的这一部分中,我们将使用对话框。
在 Tcl
/
Tk 教程的这一部分中,我们将使用对话框。
对话框窗口或对话框是大多数现代 GUI 应用必不可少的部分。 对话被定义为两个或更多人之间的对话。 在计算机应用中,对话框是一个窗口,用于与应用“对话”。 对话框用于输入数据,修改数据,更改应用设置等。对话框是用户与计算机程序之间进行通信的重要手段。
...
...
@@ -220,4 +220,4 @@ proc onSelect { label } {
Figure: tk_getOpenFile
在 Tcl / Tk 教程的这一部分中,我们使用了对话框窗口。
\ No newline at end of file
在 Tcl/Tk 教程的这一部分中,我们使用了对话框窗口。
\ No newline at end of file
docs/gui/172.md
浏览文件 @
5a080c69
# Tcl
/
Tk 绘图
# Tcl
/
Tk 绘图
> 原文: [http://zetcode.com/gui/tcltktutorial/drawing/](http://zetcode.com/gui/tcltktutorial/drawing/)
在 Tcl
/
Tk 教程的这一部分中,我们将做一些绘图。 在
`canvas`
小部件上完成 Tk 的绘制。 画布是 Tk 中图形的高级工具。
在 Tcl
/
Tk 教程的这一部分中,我们将做一些绘图。 在
`canvas`
小部件上完成 Tk 的绘制。 画布是 Tk 中图形的高级工具。
它可以用于创建图表,自定义窗口小部件或创建游戏。
...
...
@@ -247,4 +247,4 @@ wm geometry . 430x250+300+300
Figure: Drawing text
在 Tcl / Tk 教程的这一部分中,我们做了一些绘图。
\ No newline at end of file
在 Tcl/Tk 教程的这一部分中,我们做了一些绘图。
\ No newline at end of file
docs/gui/173.md
浏览文件 @
5a080c69
...
...
@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/tcltktutorial/nibbles/](http://zetcode.com/gui/tcltktutorial/nibbles/)
在 Tcl
/
Tk 教程的这一部分中,我们将创建一个 Nibbles 游戏克隆。
在 Tcl
/
Tk 教程的这一部分中,我们将创建一个 Nibbles 游戏克隆。
Nibbles 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
...
...
@@ -463,4 +463,4 @@ proc gameOver {} {
Figure: Nibbles
这是用 Tcl / Tk 创建的 Nibbles 电脑游戏。
\ No newline at end of file
这是用 Tcl/Tk 创建的 Nibbles 电脑游戏。
\ No newline at end of file
docs/gui/270.md
浏览文件 @
5a080c69
...
...
@@ -30,7 +30,7 @@ svn co http://svn.php.net/repository/gtk/php-gtk/trunk php-gtk
```
现在,从 Subversion 树中下载源代码。 不要使用源压缩文件。 这些说明适用于 Subversion
存储
库中的源。
现在,从 Subversion 树中下载源代码。 不要使用源压缩文件。 这些说明适用于 Subversion
仓
库中的源。
```
./buildconf
...
...
docs/gui/40.md
浏览文件 @
5a080c69
...
...
@@ -761,7 +761,7 @@ grid->addWidget(title, 0, 0, 1, 1);
```
这些代码行创建一个标签小部件,并将其放入网格布局中。
`addWidget()`
方法具有五个参数。 第一个参数是子窗口小部件,在本例中为标签。 接下来的两个参数是放置标签的网格中的行和列。 最后,最后一个参数是
rowpan 和 colspan
。 这些参数指定当前窗口小部件将跨越多少行。 在我们的情况下,标签将仅跨越一列和一行。
这些代码行创建一个标签小部件,并将其放入网格布局中。
`addWidget()`
方法具有五个参数。 第一个参数是子窗口小部件,在本例中为标签。 接下来的两个参数是放置标签的网格中的行和列。 最后,最后一个参数是
`rowspan`
和
`colspan`
。 这些参数指定当前窗口小部件将跨越多少行。 在我们的情况下,标签将仅跨越一列和一行。
```
cpp
title
->
setAlignment
(
Qt
::
AlignRight
|
Qt
::
AlignVCenter
);
...
...
docs/gui/41.md
浏览文件 @
5a080c69
...
...
@@ -4,7 +4,7 @@
在 Qt5 C++ 编程教程的这一部分中,我们讨论事件和信号。
事件是任何 GUI 程序中的重要组成部分。 所有 GUI 应用都是事件驱动的。 应用会对在其生命周期内生成的不同事件类型做出反应。 事件主要由应用的用户生成。 但是它们也可以通过其他方式生成,例如
Internet
连接,窗口管理器或计时器。 在事件模型中,有三个参与者:
事件是任何 GUI 程序中的重要组成部分。 所有 GUI 应用都是事件驱动的。 应用会对在其生命周期内生成的不同事件类型做出反应。 事件主要由应用的用户生成。 但是它们也可以通过其他方式生成,例如
互联网
连接,窗口管理器或计时器。 在事件模型中,有三个参与者:
*
事件来源
*
事件对象
...
...
@@ -224,7 +224,7 @@ void Move::moveEvent(QMoveEvent *e) {
```
在我们的代码编程示例中,我们对
move
事件做出反应。 我们确定窗口客户区左上角的当前 x,y 坐标,并将这些值设置为窗口标题。
在我们的代码编程示例中,我们对
移动
事件做出反应。 我们确定窗口客户区左上角的当前 x,y 坐标,并将这些值设置为窗口标题。
```
cpp
int
x
=
e
->
pos
().
x
();
...
...
@@ -492,7 +492,7 @@ startTimer(1000);
```
我们启动计时器。 每 1000
ms 会生成一个计时器事件。
我们启动计时器。 每 1000ms 会生成一个计时器事件。
```
cpp
void
Timer
::
timerEvent
(
QTimerEvent
*
e
)
{
...
...
docs/gui/42.md
浏览文件 @
5a080c69
...
...
@@ -311,7 +311,7 @@ Figure: QComboBox
## `QSpinBox`
`QSpinbox`
是一个小部件,用于处理整数和离散值集。 在我们的代码示例中,我们将有一个
Spinbox 小部件。 我们可以选择数字 0..99
。 当前选择的值显示在标签窗口小部件中。
`QSpinbox`
是一个小部件,用于处理整数和离散值集。 在我们的代码示例中,我们将有一个
`QSpinbox`
小部件。 我们可以选择数字
`0..99`
。 当前选择的值显示在标签窗口小部件中。
`spinbox.h`
...
...
@@ -334,7 +334,7 @@ class SpinBox : public QWidget {
```
这是
Spinbox
示例的头文件。
这是
`QSpinbox`
示例的头文件。
`spinbox.cpp`
...
...
docs/gui/43.md
浏览文件 @
5a080c69
...
...
@@ -321,7 +321,7 @@ void ListWidget::removeItem() {
```
`removeItem()`
从列表中删除特定项目。 首先,我们使用
`currentRow()`
方法获得当前选中的行。 (如果没有更多的行,则返回-1。)使用
`takeItem()`
方法删除当前选择的项目。
`removeItem()`
从列表中删除特定项目。 首先,我们使用
`currentRow()`
方法获得当前选中的行。 (如果没有更多的行,则返回
-1。)使用
`takeItem()`
方法删除当前选择的项目。
```
cpp
void
ListWidget
::
clearItems
(){
...
...
docs/gui/44.md
浏览文件 @
5a080c69
...
...
@@ -1107,7 +1107,7 @@ Puff::Puff(QWidget *parent)
```
在构造函数中,我们启动计时器。 每 15
ms 会生成一个计时器事件。
在构造函数中,我们启动计时器。 每 15ms 会生成一个计时器事件。
```
cpp
void
Puff
::
timerEvent
(
QTimerEvent
*
e
)
{
...
...
docs/gui/45.md
浏览文件 @
5a080c69
...
...
@@ -286,7 +286,7 @@ QString num[] = { "75", "150", "225", "300", "375", "450",
```
我们使用这些数字来构建
Burning
小部件的比例。
我们使用这些数字来构建
烧录
小部件的比例。
```
cpp
int
width
=
size
().
width
();
...
...
@@ -363,4 +363,4 @@ int main(int argc, char *argv[]) {
Figure: The Burning widget
在 Qt5 教程的这一部分中,我们创建了一个自定义的 Burning 小部件。
\ No newline at end of file
在 Qt5 教程的这一部分中,我们创建了一个自定义的烧录小部件。
\ No newline at end of file
docs/gui/46.md
浏览文件 @
5a080c69
# Qt5 中的
Snake
# Qt5 中的
贪食蛇
> 原文: [http://zetcode.com/gui/qt5/snake/](http://zetcode.com/gui/qt5/snake/)
在 Qt5 教程的这一部分中,我们创建一个
Snake
游戏克隆。
在 Qt5 教程的这一部分中,我们创建一个
贪食蛇
游戏克隆。
##
Snake
##
贪食蛇
Snake
是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles。
贪食蛇
是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles。
## 开发
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则在面板中间显示“
Game Over
”消息。
蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则在面板中间显示“
`Game Over`
”消息。
`Snake.h`
...
...
@@ -80,7 +80,7 @@ static const int DELAY = 140;
```
`B_WIDTH`
和
`B_HEIGHT`
常数确定电路板的尺寸。
`DOT_SIZE`
是苹果的大小和蛇的点。
`ALL_DOTS`
常数定义了板上可能的最大点数(
900 =(300
* 300)/(10 *
10)
)。
`RAND_POS`
常数用于计算苹果的随机位置。
`DELAY`
常数确定游戏的速度。
`B_WIDTH`
和
`B_HEIGHT`
常数确定电路板的尺寸。
`DOT_SIZE`
是苹果的大小和蛇的点。
`ALL_DOTS`
常数定义了板上可能的最大点数(
`900 = (300 * 300) / (10 * 10)`
)。
`RAND_POS`
常数用于计算苹果的随机位置。
`DELAY`
常数确定游戏的速度。
```
cpp
int
x
[
ALL_DOTS
];
...
...
@@ -343,7 +343,7 @@ void Snake::checkApple() {
```
如果苹果与头部碰撞,我们会增加蛇的关节数。 我们称
`locateApple()`
方法为随机放置一个新的
Apple
对象。
如果苹果与头部碰撞,我们会增加蛇的关节数。 我们称
`locateApple()`
方法为随机放置一个新的
`Apple`
对象。
在
`move()`
方法中,我们有游戏的密钥算法。 要了解它,请看一下蛇是如何运动的。 我们控制蛇的头。 我们可以使用光标键更改其方向。 其余关节在链上向上移动一个位置。 第二关节移动到第一个关节的位置,第三关节移动到第二个关节的位置,依此类推。
...
...
@@ -417,7 +417,7 @@ if ((key == Qt::Key_Left) && (!rightDirection)) {
```
如果单击左光标键,则将
`leftDirection`
变量设置为
true
。
`move()`
函数中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
如果单击左光标键,则将
`leftDirection`
变量设置为
`true`
。
`move()`
函数中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
`Snake.java`
...
...
@@ -445,4 +445,4 @@ int main(int argc, char *argv[]) {
Figure: Snake
这是 Qt5 中的 Snake 游戏。
\ No newline at end of file
这是 Qt5 中的贪食蛇游戏。
\ No newline at end of file
docs/gui/47.md
浏览文件 @
5a080c69
# Qt5 中的
Breakout
游戏
# Qt5 中的
打砖块
游戏
> 原文: [http://zetcode.com/gui/qt5/breakoutgame/](http://zetcode.com/gui/qt5/breakoutgame/)
在 Qt5 教程的这一部分中,我们创建了一个简单的
Breakout
游戏克隆。
在 Qt5 教程的这一部分中,我们创建了一个简单的
打砖块
游戏克隆。
Breakout 是 Atari Inc.
开发的一款街机游戏。该游戏创建于 1976 年。在该游戏中,玩家移动桨叶并弹跳球。 目的是销毁窗口顶部的砖块。
打砖块是 Atari Inc.
开发的一款街机游戏。该游戏创建于 1976 年。在该游戏中,玩家移动桨叶并弹跳球。 目的是销毁窗口顶部的砖块。
## 开发
...
...
@@ -164,7 +164,7 @@ class Brick {
```
这是砖对象的头文件。 如果销毁了积木,则
`destroyed`
变量将设置为
true
。
这是砖对象的头文件。 如果销毁了积木,则
`destroyed`
变量将设置为
`true`
。
`brick.cpp`
...
...
@@ -793,7 +793,7 @@ for (int i=0; i<5; i++) {
```
在
Breakout
对象的构造函数中,我们实例化了三十个砖块。
在
`Breakout`
对象的构造函数中,我们实例化了三十个砖块。
```
cpp
void
Breakout
::
paintEvent
(
QPaintEvent
*
e
)
{
...
...
@@ -879,7 +879,7 @@ void Breakout::moveObjects() {
```
`moveObjects()`
方法移动球和桨对象。 他们自己的
move
方法被调用。
`moveObjects()`
方法移动球和桨对象。 他们自己的
`move`
方法被调用。
```
cpp
void
Breakout
::
keyReleaseEvent
(
QKeyEvent
*
e
)
{
...
...
@@ -944,7 +944,7 @@ void Breakout::keyPressEvent(QKeyEvent *e) {
```
在
`keyPressEvent()`
方法中,我们监听与游戏相关的按键事件。
`左`
和
`右`
光标键移动桨状对象。 他们设置
`dx`
变量,该变量随后添加到桨的 x 坐标中。
`P`
键暂停游戏,
`空格键`
启动游戏。
`Esc`
键退出应用。
在
`keyPressEvent()`
方法中,我们监听与游戏相关的按键事件。
左和右光标键移动桨状对象。 他们设置
`dx`
变量,该变量随后添加到桨的 x 坐标中。
`P`
键暂停游戏,空格键启动游戏。
`Esc`
键退出应用。
```
cpp
void
Breakout
::
startGame
()
{
...
...
@@ -966,7 +966,7 @@ void Breakout::startGame() {
```
`startGame()`
方法重置球和桨对象; 他们被转移到他们的初始位置。 在
for 循环中,我们将每个积木的
`destroyed`
标志重置为 false
,从而将它们全部显示在窗口中。
`gameOver`
,
`gameWon`
和
`gameStarted`
变量获得其初始布尔值。 最后,使用
`startTimer()`
方法启动计时器。
`startGame()`
方法重置球和桨对象; 他们被转移到他们的初始位置。 在
`for`
循环中,我们将每个积木的
`destroyed`
标志重置为
`false`
,从而将它们全部显示在窗口中。
`gameOver`
,
`gameWon`
和
`gameStarted`
变量获得其初始布尔值。 最后,使用
`startTimer()`
方法启动计时器。
```
cpp
void
Breakout
::
pauseGame
()
{
...
...
@@ -1073,4 +1073,4 @@ int main(int argc, char *argv[]) {
Figure: The Breakout game
这是 Qt5 中的 Breakout 游戏。
\ No newline at end of file
这是 Qt5 中的打砖块游戏。
\ No newline at end of file
docs/gui/48.md
浏览文件 @
5a080c69
...
...
@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/tkinter/](http://zetcode.com/tkinter/)
这是 Tkinter 教程。 它涵盖了使用 Tkinter 在 Python 中进行 GUI 编程的基础。 本教程适合初学者和中级程序员。 这些示例是用 OOP 编写的。 源和图像可从作者的 Github
[
Tkinter-Examples
](
https://github.com/janbodnar/Tkinter-Examples
)
存储
库中获得。
这是 Tkinter 教程。 它涵盖了使用 Tkinter 在 Python 中进行 GUI 编程的基础。 本教程适合初学者和中级程序员。 这些示例是用 OOP 编写的。 源和图像可从作者的 Github
[
Tkinter-Examples
](
https://github.com/janbodnar/Tkinter-Examples
)
仓
库中获得。
## 目录
...
...
@@ -27,4 +27,4 @@ ZetCode 上有独特的电子书 [Tkinter 编程](/ebooks/tkinter/); PDF 格
## 相关教程
[
Tkinter 教程-程序样式
](
/python/tkinter/
)
是 Tkinter 的程序编程样式教程。 Tkinter 中的
[
长期运行任务
](
/articles/tkinterlongruntask/
)
中介绍了计算 Tkinter 中的 Pi 数。 在 ZetCode 上有完整的
[
Python 教程
](
/lang/python/
)
。
[
Tcl / Tk 教程
](
/gui/tcltktutorial/
)
中介绍了 Tcl 语言的原始 Tk 工具包。 其他适用于 Python 语言的 GUI 工具包的教程为
[
PyQt5 教程
](
/gui/pyqt5/
)
,
[
wxPython 教程
](
/wxpython/
)
和
[
Python Gtk 教程
](
/python/gtk/
)
。
\ No newline at end of file
[
Tkinter 教程-程序样式
](
/python/tkinter/
)
是 Tkinter 的程序编程样式教程。 Tkinter 中的
[
长期运行任务
](
/articles/tkinterlongruntask/
)
中介绍了计算 Tkinter 中的
`Pi`
数。 在 ZetCode 上有完整的
[
Python 教程
](
/lang/python/
)
。
[
Tcl/Tk 教程
](
/gui/tcltktutorial/
)
中介绍了 Tcl 语言的原始 Tk 工具包。 其他适用于 Python 语言的 GUI 工具包的教程为
[
PyQt5 教程
](
/gui/pyqt5/
)
,
[
wxPython 教程
](
/wxpython/
)
和
[
Python Gtk 教程
](
/python/gtk/
)
。
\ No newline at end of file
docs/gui/58.md
浏览文件 @
5a080c69
...
...
@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/tutorials/javaswingtutorial/](http://zetcode.com/tutorials/javaswingtutorial/)
这是 Java Swing 教程。 Java Swing 教程适合初学者和中级 Swing 开发人员。 阅读本教程后,您将能够开发非平凡的 Java Swing 应用。 可以在作者的 Github
[
Java-Swing-Examples
](
https://github.com/janbodnar/Java-Swing-Examples
)
存储
库中找到这些代码示例。
这是 Java Swing 教程。 Java Swing 教程适合初学者和中级 Swing 开发人员。 阅读本教程后,您将能够开发非平凡的 Java Swing 应用。 可以在作者的 Github
[
Java-Swing-Examples
](
https://github.com/janbodnar/Java-Swing-Examples
)
仓
库中找到这些代码示例。
## 目录
...
...
docs/gui/72.md
浏览文件 @
5a080c69
...
...
@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/tutorials/javaswingtutorial/puzzle/](http://zetcode.com/tutorials/javaswingtutorial/puzzle/)
在本章中,我们将使用 Java Swing 创建一个简单的益智游戏。 来源可从作者的 Github
[
存储
库
](
https://github.com/janbodnar/Puzzle-game-in-Java-Swing
)
中获得。
在本章中,我们将使用 Java Swing 创建一个简单的益智游戏。 来源可从作者的 Github
[
仓
库
](
https://github.com/janbodnar/Puzzle-game-in-Java-Swing
)
中获得。
[
Tweet
](
https://twitter.com/share
)
...
...
docs/gui/99.md
浏览文件 @
5a080c69
...
...
@@ -4,7 +4,7 @@
这是 wxPython 教程。 在本教程中,您将学习 wxPython 中 GUI 编程的基础。 本教程适合初学者和中级程序员。
本教程介绍了 wxPython Phoenix 版本 4.0.1。 可在
[
wxPython-examples
](
https://github.com/janbodnar/wxPython-examples
)
存储
库中获得示例的源代码。
本教程介绍了 wxPython Phoenix 版本 4.0.1。 可在
[
wxPython-examples
](
https://github.com/janbodnar/wxPython-examples
)
仓
库中获得示例的源代码。
## 目录
...
...
docs/gui/SUMMARY.md
浏览文件 @
5a080c69
...
...
@@ -94,13 +94,13 @@
+
[
Tkinter 中的对话框
](
54.md
)
+
[
Tkinter 中的绘图
](
55.md
)
+
[
Tkinter 中的 Snake
](
56.md
)
+
[
Tcl
/
Tk 教程
](
166.md
)
+
[
Tcl
/
Tk 简介
](
167.md
)
+
[
Tcl
/
Tk 中的布局管理
](
168.md
)
+
[
Tcl
/
Tk 小部件
](
169.md
)
+
[
Tcl
/
Tk 中的菜单和工具栏
](
170.md
)
+
[
Tcl
/
Tk 中的对话框
](
171.md
)
+
[
Tcl
/
Tk 绘图
](
172.md
)
+
[
Tcl
/
Tk 教程
](
166.md
)
+
[
Tcl
/
Tk 简介
](
167.md
)
+
[
Tcl
/
Tk 中的布局管理
](
168.md
)
+
[
Tcl
/
Tk 小部件
](
169.md
)
+
[
Tcl
/
Tk 中的菜单和工具栏
](
170.md
)
+
[
Tcl
/
Tk 中的对话框
](
171.md
)
+
[
Tcl
/
Tk 绘图
](
172.md
)
+
[
Nibbles
](
173.md
)
+
[
Qt 快速教程
](
57.md
)
+
[
Java Swing 教程
](
58.md
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录