提交 5a080c69 编写于 作者: W wizardforcel

2020-06-20 17:39:36

上级 adb817ba
......@@ -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):
......
......@@ -24,7 +24,7 @@ Python 编程语言支持多种编程样式。 它不会强迫程序员采用特
Python 编程语言的官方网站是 [python.org](http://python.org)
Python 是最受欢迎的编程语言之一。 根据 [langpop.com](http://langpop.com/) ,Python 排在第六位。 [TI​​OBE 索引](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 排在第六位。 [TI​​OBE 索引](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)将 Python 放在第 8 位。 在 [github.com](https://github.com/languages) (一种流行的软件项目库)上,Python 是第三流行的语言,在托管的所有项目中占 9% 的份额。
## Python 工具包
......
# 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)
......
# 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
# 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
# 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
# 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
# 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
# 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
......@@ -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
......@@ -30,7 +30,7 @@ svn co http://svn.php.net/repository/gtk/php-gtk/trunk php-gtk
```
现在,从 Subversion 树中下载源代码。 不要使用源压缩文件。 这些说明适用于 Subversion 存储库中的源。
现在,从 Subversion 树中下载源代码。 不要使用源压缩文件。 这些说明适用于 Subversion 库中的源。
```
./buildconf
......
......@@ -761,7 +761,7 @@ grid->addWidget(title, 0, 0, 1, 1);
```
这些代码行创建一个标签小部件,并将其放入网格布局中。 `addWidget()`方法具有五个参数。 第一个参数是子窗口小部件,在本例中为标签。 接下来的两个参数是放置标签的网格中的行和列。 最后,最后一个参数是 rowpan 和 colspan。 这些参数指定当前窗口小部件将跨越多少行。 在我们的情况下,标签将仅跨越一列和一行。
这些代码行创建一个标签小部件,并将其放入网格布局中。 `addWidget()`方法具有五个参数。 第一个参数是子窗口小部件,在本例中为标签。 接下来的两个参数是放置标签的网格中的行和列。 最后,最后一个参数是`rowspan``colspan`。 这些参数指定当前窗口小部件将跨越多少行。 在我们的情况下,标签将仅跨越一列和一行。
```cpp
title->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
......
......@@ -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) {
......
......@@ -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`
......
......@@ -321,7 +321,7 @@ void ListWidget::removeItem() {
```
`removeItem()`从列表中删除特定项目。 首先,我们使用`currentRow()`方法获得当前选中的行。 (如果没有更多的行,则返回-1。)使用`takeItem()`方法删除当前选择的项目。
`removeItem()`从列表中删除特定项目。 首先,我们使用`currentRow()`方法获得当前选中的行。 (如果没有更多的行,则返回 -1。)使用`takeItem()`方法删除当前选择的项目。
```cpp
void ListWidget::clearItems(){
......
......@@ -1107,7 +1107,7 @@ Puff::Puff(QWidget *parent)
```
在构造函数中,我们启动计时器。 每 15 ms 会生成一个计时器事件。
在构造函数中,我们启动计时器。 每 15ms 会生成一个计时器事件。
```cpp
void Puff::timerEvent(QTimerEvent *e) {
......
......@@ -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
# 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
# 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
......@@ -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
......@@ -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) 库中找到这些代码示例。
## 目录
......
......@@ -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)
......
......@@ -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) 库中获得示例的源代码。
## 目录
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册