Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
zetcode-zh
提交
e1066e29
Z
zetcode-zh
项目概览
OpenDocCN
/
zetcode-zh
9 个月 前同步成功
通知
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 搜索 >>
提交
e1066e29
编写于
6月 20, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-20 20:59:29
上级
f4417688
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
20 addition
and
20 deletion
+20
-20
docs/gui/110.md
docs/gui/110.md
+3
-3
docs/gui/111.md
docs/gui/111.md
+3
-3
docs/gui/112.md
docs/gui/112.md
+1
-1
docs/gui/113.md
docs/gui/113.md
+2
-2
docs/gui/114.md
docs/gui/114.md
+1
-1
docs/gui/115.md
docs/gui/115.md
+3
-3
docs/gui/116.md
docs/gui/116.md
+1
-1
docs/gui/117.md
docs/gui/117.md
+2
-2
docs/gui/118.md
docs/gui/118.md
+4
-4
未找到文件。
docs/gui/110.md
浏览文件 @
e1066e29
...
...
@@ -113,7 +113,7 @@ import webbrowser
```
在这里,我们导入基础窗口小部件,从中可以导出我们的超链接窗口小部件和
webbrowser 模块。 webbrowser
模块是标准的 Python 模块。 我们将使用它在默认浏览器中打开链接。
在这里,我们导入基础窗口小部件,从中可以导出我们的超链接窗口小部件和
`webbrowser`
模块。
`webbrowser`
模块是标准的 Python 模块。 我们将使用它在默认浏览器中打开链接。
```
py
self
.
SetFont
(
self
.
font2
)
...
...
@@ -440,7 +440,7 @@ rect = pos / 5
```
在这里,我们获得了
sizer 的值。 每列有 20 个矩形。 滑块有 100 个数字。 rect
参数将滑块值转换为以鲜绿色绘制的矩形。
在这里,我们获得了
大小调整器的值。 每列有 20 个矩形。 滑块有 100 个数字。
`rect`
参数将滑块值转换为以鲜绿色绘制的矩形。
```
py
for
i
in
range
(
1
,
21
):
...
...
@@ -457,7 +457,7 @@ for i in range(1, 21):
```
这里我们绘制 40 个矩形,每列 20 个。 如果要绘制的矩形的数目大于转换后的
rect
值,则将其绘制为深绿色;否则,将其绘制为深绿色。 否则为亮绿色。
这里我们绘制 40 个矩形,每列 20 个。 如果要绘制的矩形的数目大于转换后的
`rect`
值,则将其绘制为深绿色;否则,将其绘制为深绿色。 否则为亮绿色。
![
CPU widget
](
img/dd9d5d4d5386f899b7e2e6c67f91ee53.jpg
)
...
...
docs/gui/111.md
浏览文件 @
e1066e29
...
...
@@ -6,7 +6,7 @@
## 文件管理器
File Hunter 是文件管理器的骨架。 它复制了 Krusader 的监视,Krusader 是 Unix 系统上可用的文件管理器。 如果我们双击拆分器小部件,它将把 File Hunter
分成宽度相同的两个部分。 如果我们调整主窗口的大小,也会发生同样的情况。
文件监视器是文件管理器的骨架。 它复制了 Krusader 的监视,Krusader 是 Unix 系统上可用的文件管理器。 如果我们双击拆分器小部件,它将把文件监视器
分成宽度相同的两个部分。 如果我们调整主窗口的大小,也会发生同样的情况。
`file_hunter.py`
...
...
@@ -507,7 +507,7 @@ if __name__ == '__main__':
```
该代码示例创建
SpreadSheet
应用的 UI。 我有一个菜单栏,工具栏和一个中央网格小部件。
该代码示例创建
电子表格
应用的 UI。 我有一个菜单栏,工具栏和一个中央网格小部件。
```
py
class
MySheet
(
wx
.
grid
.
Grid
):
...
...
@@ -862,7 +862,7 @@ hbox1.Add(address, 1, wx.TOP, 4)
```
然后,将组合框添加到
sizer
。 这种组合框通常称为地址栏。 请注意,这是唯一将比例设置为 1 的小部件。这是使其可调整大小的必要条件。
然后,将组合框添加到
大小调整器
。 这种组合框通常称为地址栏。 请注意,这是唯一将比例设置为 1 的小部件。这是使其可调整大小的必要条件。
```
py
line2
=
wx
.
StaticLine
(
panel
)
...
...
docs/gui/112.md
浏览文件 @
e1066e29
...
...
@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/wxpython/thetetrisgame/](http://zetcode.com/wxpython/thetetrisgame/)
俄罗斯方块游戏是有史以来最受欢迎的计算机游戏之一。 原始游戏是由俄罗斯程序员 Alexey Pajitnov 于 1985 年设计和编程的。此后,几乎所有版本的几乎所有计算机平台上都可以使用
Tetris
。
俄罗斯方块游戏是有史以来最受欢迎的计算机游戏之一。 原始游戏是由俄罗斯程序员 Alexey Pajitnov 于 1985 年设计和编程的。此后,几乎所有版本的几乎所有计算机平台上都可以使用
俄罗斯方块
。
俄罗斯方块被称为下降块益智游戏。 在这个游戏中,我们有七个不同的形状,称为 tetrominoes:S 形,Z 形,T 形,L 形,线形,MirroredL 形和方形。 这些形状中的每一个都形成有四个正方形。 形状从板上掉下来。 俄罗斯方块游戏的目的是移动和旋转形状,以使其尽可能地适合。 如果我们设法形成一行,则该行将被破坏并得分。 我们玩俄罗斯方块游戏,直到达到顶峰。
...
...
docs/gui/113.md
浏览文件 @
e1066e29
...
...
@@ -14,8 +14,8 @@
*
[
对话框
](
gtkdialogs/
)
*
[
小部件
](
gtkwidgets/
)
*
[
小部件 II
](
gtkwidgetsII/
)
*
[
GtkTreeView
小部件
](
gtktreeview/
)
*
[
GtkTextView
小部件
](
gtktextview/
)
*
[
`GtkTreeView`
小部件
](
gtktreeview/
)
*
[
`GtkTextView`
小部件
](
gtktextview/
)
*
[
自定义 GTK+ 小部件
](
customwidget/
)
## GTK+
...
...
docs/gui/114.md
浏览文件 @
e1066e29
...
...
@@ -6,7 +6,7 @@
## GTK+
GTK+ 是用于创建图形用户界面的库。 该库是用 C 编程语言创建的。 GTK+ 库也称为 GIMP 工具箱。 最初,该库是在开发 GIMP 图像处理程序时创建的。 从那时起,GTK+ 成为 Linux 和 BSD Unix 下最受欢迎的工具包之一。 如今,开源世界中的大多数 GUI 软件都是在 Qt 或 GTK+ 中创建的。 GTK+ 是一个面向对象的应用编程接口。 面向对象的系统是使用 Glib
Object 系统创建的,该系统是 GTK+ 库的基础。GObject
还可以为各种其他编程语言创建语言绑定。 存在用于 C++ ,Python,Perl,Java,C# 和其他编程语言的语言绑定。
GTK+ 是用于创建图形用户界面的库。 该库是用 C 编程语言创建的。 GTK+ 库也称为 GIMP 工具箱。 最初,该库是在开发 GIMP 图像处理程序时创建的。 从那时起,GTK+ 成为 Linux 和 BSD Unix 下最受欢迎的工具包之一。 如今,开源世界中的大多数 GUI 软件都是在 Qt 或 GTK+ 中创建的。 GTK+ 是一个面向对象的应用编程接口。 面向对象的系统是使用 Glib
对象系统创建的,该系统是 GTK+ 库的基础。
`GObject`
还可以为各种其他编程语言创建语言绑定。 存在用于 C++ ,Python,Perl,Java,C# 和其他编程语言的语言绑定。
GTK+ 本身取决于以下库:
...
...
docs/gui/115.md
浏览文件 @
e1066e29
...
...
@@ -133,7 +133,7 @@ gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
```
此
`gtk_window_set_default_size()`
将窗口的大小设置为
230x150
。 请注意,我们谈论的是客户区域,不包括窗口管理器提供的装饰。
此
`gtk_window_set_default_size()`
将窗口的大小设置为
`230x150`
。 请注意,我们谈论的是客户区域,不包括窗口管理器提供的装饰。
```
c
gtk_window_set_position
(
GTK_WINDOW
(
window
),
GTK_WIN_POS_CENTER
);
...
...
@@ -202,7 +202,7 @@ pixbuf = gdk_pixbuf_new_from_file(filename, &error);
```
`gdk_pixbuf_new_from_file()`
功能通过从文件加载图像来创建新的
pixbuf。 自动检测文件格式。 如果返回 NULL
,则将设置错误。
`gdk_pixbuf_new_from_file()`
功能通过从文件加载图像来创建新的
`pixbuf`
。 自动检测文件格式。 如果返回
`NULL`
,则将设置错误。
```
c
if
(
!
pixbuf
)
{
...
...
@@ -297,7 +297,7 @@ gtk_container_add(GTK_CONTAINER(halign), button);
```
`GtkAlignment`
是一个基本容器,可用于将其子控件与窗口的侧面对齐。 在我们的例子中,该按钮位于窗口的左上角。 该函数的第一个参数是
xalign 和 yalign。 xalign 的值为 0 表示左对齐; yalign
的值为 0 表示顶部对齐。 第三和第四参数是缩放值。 将两个参数都传递 0 表示小部件不会在两个方向上展开。
`GtkAlignment`
是一个基本容器,可用于将其子控件与窗口的侧面对齐。 在我们的例子中,该按钮位于窗口的左上角。 该函数的第一个参数是
`xalign`
和
`yalign`
。
`xalign`
的值为 0 表示左对齐;
`yalign`
的值为 0 表示顶部对齐。 第三和第四参数是缩放值。 将两个参数都传递 0 表示小部件不会在两个方向上展开。
```
c
gtk_container_add
(
GTK_CONTAINER
(
window
),
halign
);
...
...
docs/gui/116.md
浏览文件 @
e1066e29
...
...
@@ -88,7 +88,7 @@ gtk_menu_item_set_submenu(GTK_MENU_ITEM(fileMi), fileMenu);
```
通过
`gtk_menu_item_set_submenu()`
功能将
`fileMenu`
设置为
File
菜单项。 菜单是容纳菜单项的容器。 它们本身已插入特定的菜单项。
通过
`gtk_menu_item_set_submenu()`
功能将
`fileMenu`
设置为
文件
菜单项。 菜单是容纳菜单项的容器。 它们本身已插入特定的菜单项。
```
c
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
fileMenu
),
quitMi
);
...
...
docs/gui/117.md
浏览文件 @
e1066e29
...
...
@@ -72,7 +72,7 @@ gtk_fixed_put(GTK_FIXED(fixed), btn1, 150, 50);
```
使用
`gtk_fixed_put()`
功能将第一个按钮放置在坐标
x = 150 和 y = 50
处。
使用
`gtk_fixed_put()`
功能将第一个按钮放置在坐标
`x = 150`
和
`y = 50`
处。
```
c
gtk_widget_set_size_request
(
btn1
,
80
,
30
);
...
...
@@ -230,7 +230,7 @@ gtk_box_pack_start(GTK_BOX(vbox), settings, TRUE, TRUE, 0);
```
`gtk_box_pack_start()`
功能将小部件添加到框中。 前两个参数是
box 容器和子窗口小部件。 接下来的三个参数是
`expand`
,
`fill`
和
`padding`
。 注意,如果
`expand`
参数设置为
`FALSE`
,则 fill
参数无效。 同样,如果我们创建的容器的均质参数设置为
`TRUE`
,则
`expand`
参数无效。 在我们的情况下,当窗口放大且窗口小部件填充额外区域时,“设置”按钮将获得额外的空间。
`gtk_box_pack_start()`
功能将小部件添加到框中。 前两个参数是
盒子容器和子窗口小部件。 接下来的三个参数是
`expand`
,
`fill`
和
`padding`
。 注意,如果
`expand`
参数设置为
`FALSE`
,则
`fill`
参数无效。 同样,如果我们创建的容器的均质参数设置为
`TRUE`
,则
`expand`
参数无效。 在我们的情况下,当窗口放大且窗口小部件填充额外区域时,“设置”按钮将获得额外的空间。
![
GtkVBox container
](
img/19b3617016f004f6f5094352dc947c34.jpg
)
...
...
docs/gui/118.md
浏览文件 @
e1066e29
...
...
@@ -74,7 +74,7 @@ void button_clicked(GtkWidget *widget, gpointer data) {
```
回调将“
clicked
”字符串打印到控制台。 回调函数的第一个参数是发出信号的对象。 在我们的例子中是单击按钮。 第二个参数是可选的。 我们可能会向回调发送一些数据。 在我们的案例中,我们没有发送任何数据; 我们为
`g_signal_connect()`
函数的第四个参数提供了
`NULL`
值。
回调将“
`clicked`
”字符串打印到控制台。 回调函数的第一个参数是发出信号的对象。 在我们的例子中是单击按钮。 第二个参数是可选的。 我们可能会向回调发送一些数据。 在我们的案例中,我们没有发送任何数据; 我们为
`g_signal_connect()`
函数的第四个参数提供了
`NULL`
值。
```
c
g_signal_connect
(
G_OBJECT
(
window
),
"destroy"
,
...
...
@@ -82,7 +82,7 @@ g_signal_connect(G_OBJECT(window), "destroy",
```
如果按标题栏右上角的 x 按钮,或按
`Atl
`
+
`
F4`
,则会发出
`destroy`
信号。 调用
`gtk_main_quit()`
函数,该函数将终止应用。
如果按标题栏右上角的 x 按钮,或按
`Atl
+
F4`
,则会发出
`destroy`
信号。 调用
`gtk_main_quit()`
函数,该函数将终止应用。
## 移动窗口
...
...
@@ -180,7 +180,7 @@ Figure: Move event
## 输入信号
以下示例显示了我们如何对
`enter`
信号做出反应。 当我们使用鼠标指针进入小部件的区域时,将发出
enter
信号。
以下示例显示了我们如何对
`enter`
信号做出反应。 当我们使用鼠标指针进入小部件的区域时,将发出
`enter`
信号。
`entersignal.c`
...
...
@@ -539,7 +539,7 @@ g_timeout_add(1000, (GSourceFunc) time_handler, (gpointer) window);
```
此功能注册计时器。
`time_handler()`
功能会定期重复调用。 就我们而言,每一秒钟。 将调用计时器函数,直到返回
FALSE
。
此功能注册计时器。
`time_handler()`
功能会定期重复调用。 就我们而言,每一秒钟。 将调用计时器函数,直到返回
`FALSE`
。
```
c
time_handler
(
window
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录