提交 e1066e29 编写于 作者: W wizardforcel

2020-06-20 20:59:29

上级 f4417688
......@@ -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)
......
......@@ -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)
......
......@@ -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 形和方形。 这些形状中的每一个都形成有四个正方形。 形状从板上掉下来。 俄罗斯方块游戏的目的是移动和旋转形状,以使其尽可能地适合。 如果我们设法形成一行,则该行将被破坏并得分。 我们玩俄罗斯方块游戏,直到达到顶峰。
......
......@@ -14,8 +14,8 @@
* [对话框](gtkdialogs/)
* [小部件](gtkwidgets/)
* [小部件 II](gtkwidgetsII/)
* [GtkTreeView 小部件](gtktreeview/)
* [GtkTextView 小部件](gtktextview/)
* [`GtkTreeView`小部件](gtktreeview/)
* [`GtkTextView`小部件](gtktextview/)
* [自定义 GTK+ 小部件](customwidget/)
## GTK+
......
......@@ -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+ 本身取决于以下库:
......
......@@ -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);
......
......@@ -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);
......
......@@ -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)
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册