提交 dee4435d 编写于 作者: W wizardforcel

2020-06-21 15:18:20

上级 ef710199
......@@ -535,7 +535,7 @@ control = self.GetParent().GetParent().position
```
位置文本控件显示了网格小部件的选定单元格。 它是第二个工具栏的第一个小部件。 在`Example`类内部,我们需要获取对文本控件的引用,该引用在`Example`类中定义。 `MySheet`是笔记本的孩子。 笔记本是`Example`的孩子。 因此,通过两次调用`GetParent()`方法,我们设法到达了位置文本控件。
位置文本控件显示了网格小部件的选定单元格。 它是第二个工具栏的第一个小部件。 在`Example`类内部,我们需要获取对文本控件的引用,该引用在`Example`类中定义。 `MySheet`是笔记本的子项。 笔记本是`Example`的子项。 因此,通过两次调用`GetParent()`方法,我们设法到达了位置文本控件。
```py
notebook = wx.Notebook(self, style=wx.RIGHT)
......
......@@ -6,7 +6,7 @@
在设计应用的 GUI 时,我们决定要使用哪些小部件以及如何在应用中组织这些小部件。 为了组织小部件,我们使用专门的不可见对象,称为布局管理器。
有两种小部件:容器及其子级。 容器将孩子分组为合适的布局。
有两种小部件:容器及其子级。 容器将子项分组为合适的布局。
Tk 具有三个内置布局管理器:`pack``grid``place`管理器。 包几何形状管理器在垂直和水平框中组织小部件。 网格几何管理器将小部件放置在二维网格中。 最后,`place`几何管理器使用绝对定位将小部件放置在其容器上。
......
......@@ -378,7 +378,7 @@ Figure: RowLayout manager
## 按钮
在最后一个示例中,我们使用`FormLayout`管理器创建一个示例。 该管理器使用两个对象`FormData``FormAttachment`控制孩子的位置和大小。
在最后一个示例中,我们使用`FormLayout`管理器创建一个示例。 该管理器使用两个对象`FormData``FormAttachment`控制子项的位置和大小。
`ButtonsEx.java`
......
......@@ -355,7 +355,7 @@ class MApplication {
```
这是`TreeView`控件的非常简单的演示。 我们有一个根项目和三个孩子
这是`TreeView`控件的非常简单的演示。 我们有一个根项目和三个子项
```
TreeView tv = new TreeView();
......
......@@ -309,7 +309,7 @@ Application.Run(IForm())
```
这是`TreeView`控件的非常简单的演示。 我们有一个根项目和三个孩子
这是`TreeView`控件的非常简单的演示。 我们有一个根项目和三个子项
```
tv = TreeView()
......
......@@ -402,7 +402,7 @@ gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3)
```
我们创建一个垂直框,使其成为顶层窗口的容器。 `gtk_vbox_new()`函数的第一个参数称为同质参数。 如果设置为`TRUE`,则一个框中的所有小部件都具有相等的空间分配。 我们不希望这样,因为菜单栏仅占用窗口的一小部分。 第二个参数是孩子之间的空间。
我们创建一个垂直框,使其成为顶层窗口的容器。 `gtk_vbox_new()`函数的第一个参数称为同质参数。 如果设置为`TRUE`,则一个框中的所有小部件都具有相等的空间分配。 我们不希望这样,因为菜单栏仅占用窗口的一小部分。 第二个参数是子项之间的空间。
```
menubar = gtk_menu_bar_new()
......
......@@ -4,7 +4,7 @@
在 Jython Swing 编程教程的这一部分中,我们将介绍布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件:容器和子组件。 容器将孩子分组为合适的布局。 要创建布局,我们使用布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件:容器和子组件。 容器将子项分组为合适的布局。 要创建布局,我们使用布局管理器。
## 绝对定位
......
......@@ -4,7 +4,7 @@
在 JRuby Swing 编程教程的这一部分中,我们将介绍布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件。 容器和儿童。 容器将孩子分组为合适的布局。 要创建布局,我们使用布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件。 容器和子项。 容器将子项分组为合适的布局。 要创建布局,我们使用布局管理器。
## 绝对定位
......
......@@ -84,7 +84,7 @@ cb = JCheckBox.new "Show Title", true
```
`JCheckBox`组件已创建。 构造函数的第一个参数是其文本标签。 第二个参数是一个布尔值,指示初始选择状态。 如果为 true,则选中该复选框。
`JCheckBox`组件已创建。 构造函数的第一个参数是其文本标签。 第二个参数是一个布尔值,指示初始选择状态。 如果为`true`,则选中该复选框。
```
cb.setFocusable false
......@@ -201,7 +201,7 @@ Example.new
```
我们的示例在窗口中显示了歌曲的歌词。 我们可以在`JLabel`组件中使用 HTML 标签。 我们使用< br >标签来分隔行。
我们的示例在窗口中显示了歌曲的歌词。 我们可以在`JLabel`组件中使用 HTML 标签。 我们使用`<br>`标签来分隔行。
```
lyrics = "<html>It's way too late to think of<br>
......@@ -577,7 +577,7 @@ class Example < JFrame
```
该类实现`ActionListener`。 我们将在 Example 类的`actionPerformed`方法中执行一些操作。
该类实现`ActionListener`。 我们将在`Example`类的`actionPerformed`方法中执行一些操作。
```
redButton = JToggleButton.new "red"
......@@ -585,7 +585,7 @@ redButton.addActionListener self
```
我们创建一个`JToggleButton`组件。 我们向按钮添加一个动作监听器。 动作监听器是 Example 类。 当我们单击 redButton 时,将调用 Example 类的`actionPerformed`方法。
我们创建一个`JToggleButton`组件。 我们向按钮添加一个动作监听器。 动作监听器是`Example`类。 当我们单击`redButton`时,将调用`Example`类的`actionPerformed`方法。
```
blueButton.setMaximumSize greenButton.getMaximumSize
......@@ -714,7 +714,7 @@ Example.new
```
在我们的示例中,我们将显示`JList``JLabel`组件。 list 组件包含我们系统上所有可用字体系列名称的列表。 如果我们从列表中选择一项,则标签将以我们选择的字体显示。
在我们的示例中,我们将显示`JList``JLabel`组件。 列表组件包含我们系统上所有可用字体系列名称的列表。 如果我们从列表中选择一项,则标签将以我们选择的字体显示。
```
ge = GraphicsEnvironment.getLocalGraphicsEnvironment
......
......@@ -96,7 +96,7 @@ fileMenu.setMnemonic KeyEvent::VK_F
```
我们创建一个菜单对象。 菜单是包含`JMenuItem`的弹出窗口。 菜单位于菜单栏上。 也可以通过键盘访问菜单。 要将菜单绑定到特定键,我们使用`setMnemonic`方法。 在我们的情况下,可以使用 ALT + F 快捷方式打开菜单。
我们创建一个菜单对象。 菜单是包含`JMenuItem`的弹出窗口。 菜单位于菜单栏上。 也可以通过键盘访问菜单。 要将菜单绑定到特定键,我们使用`setMnemonic`方法。 在我们的情况下,可以使用`ALT + F`快捷方式打开菜单。
```
itemExit = JMenuItem.new "Close", icon
......@@ -349,7 +349,7 @@ self.addMouseListener MouseAction.new
```
我们将鼠标监听器添加到 Example 类。 鼠标监听器是`MouseAction`用户定义的类,该类继承自`MouseAdapter`。 这是一个便利类,可实现所有五个必需的方法。 方法为空。 除了实现所有五个方法之外,我们仅实现所需的方法。
我们将鼠标监听器添加到`Example`类。 鼠标监听器是`MouseAction`用户定义的类,该类继承自`MouseAdapter`。 这是一个便利类,可实现所有五个必需的方法。 方法为空。 除了实现所有五个方法之外,我们仅实现所需的方法。
```
class MouseAction < MouseAdapter
......@@ -359,7 +359,7 @@ class MouseAction < MouseAdapter
```
在我们的 MouseAction 类中,我们实现了`mouseReleased`方法。
在我们的`MouseAction`类中,我们实现了`mouseReleased`方法。
```
if e.getButton == e.button:
......
......@@ -113,7 +113,7 @@ g.fillRect 10, 15, 90, 60
```
我们使用上面指定的颜色值填充位于 x = 10,y = 15 且宽度= 90 和高度= 60 的矩形。
我们使用上面指定的颜色值填充位于`x = 10``y = 15`且宽度`= 90`和高度`= 60`的矩形。
![Colors](img/1ff48abf49c675059d785a4e0dd185a5.jpg)
......
# JRuby Swing 中的 Nibbles
# JRuby Swing 中的贪食蛇
> 原文: [http://zetcode.com/gui/jrubyswing/nibbles/](http://zetcode.com/gui/jrubyswing/nibbles/)
在 JRuby Swing 编程教程的这一部分中,我们将创建一个 Nibbles 游戏克隆。
在 JRuby Swing 编程教程的这一部分中,我们将创建一个贪食蛇游戏克隆。
Nibbles 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
贪食蛇是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
## 开发
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在窗口中心显示“ Game Over”消息。
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在窗口中心显示“`Game Over`”消息。
```
#!/usr/local/bin/jruby
......@@ -349,7 +349,7 @@ end
```
gameOver 方法中,我们在窗口中心显示“ Game Over”消息。 我们也停止计时器。
`gameOver`方法中,我们在窗口中心显示“`Game Over`”消息。 我们也停止计时器。
```
def checkApple
......@@ -362,7 +362,7 @@ end
```
`checkApple`方法检查蛇是否击中了苹果对象。 如果是这样,我们添加另一个蛇形关节并调用`locateApple`方法,该方法将随机放置一个新的 Apple 对象。
`checkApple`方法检查蛇是否击中了苹果对象。 如果是这样,我们添加另一个蛇形关节并调用`locateApple`方法,该方法将随机放置一个新的`Apple`对象。
`move`方法中,我们有游戏的密钥算法。 要了解它,请看一下蛇是如何运动的。 您控制蛇的头。 您可以使用光标键更改其方向。 其余关节在链上向上移动一个位置。 第二关节移动到第一个关节的位置,第三关节移动到第二个关节的位置,依此类推。
......@@ -416,7 +416,7 @@ r = rand RAND_POS
```
我们得到一个从 0 到 RAND_POS-1 的随机数。
我们得到一个从 0 到`RAND_POS-1`的随机数。
```
@apple_x = r * DOT_SIZE
......@@ -425,7 +425,7 @@ r = rand RAND_POS
```
这些行设置了 apple 对象的 x,y 坐标。
这些行设置了`apple`对象的 x,y 坐标。
```
def actionPerformed e
......@@ -442,9 +442,9 @@ end
```
每隔 DELAY ms,将调用`actionPerformed`方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。
每隔`DELAY` ms,将调用`actionPerformed`方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。
Board 类的`keyPressed`方法中,我们确定按下的键。
`Board`类的`keyPressed`方法中,我们确定按下的键。
```
if key == KeyEvent::VK_LEFT and not @right
......@@ -455,7 +455,7 @@ end
```
如果单击左光标键,则将`@left`变量设置为 true。 在`move`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
如果单击左光标键,则将`@left`变量设置为`true`。 在`move`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
```
class Example < JFrame
......@@ -489,4 +489,4 @@ end
Figure: Nibbles
这是使用 Swing 库和 JRuby 编程语言编写的 Nibbles 电脑游戏。
\ No newline at end of file
这是使用 Swing 库和 JRuby 编程语言编写的贪食蛇电脑游戏。
\ No newline at end of file
......@@ -8,7 +8,7 @@
## 关于
Windows 窗体是图形用户界面应用编程接口(API),包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日,Mono 的 System.Windows.Forms 2.0 已完成 API。 简而言之,Winforms 是一个用于创建 GUI 应用的库。
Windows 窗体是图形用户界面应用编程接口(API),包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日,Mono 的`System.Windows.Forms` 2.0 已完成 API。 简而言之,Winforms 是一个用于创建 GUI 应用的库。
Mono 是一个跨平台的开源.NET 开发框架。 它是.NET 兼容的工具集,其中包括 C# 编译器,Visual Basic 编译器,公共语言运行时,ADO.NET,ASP.NET 和 Winforms 库。
......@@ -17,7 +17,7 @@ vbnc -r:/usr/lib/mono/2.0/System.Windows.Forms.dll quitbutton.vb
```
上面的命令显示了如何编译 quitbutton 示例。 mono VB 编译器的`-r`参数加载 Winforms 程序集。 这是一个动态库。 该命令显示了 Ubuntu 系统上 DLL 库的路径。
上面的命令显示了如何编译`quitbutton`示例。 mono VB 编译器的`-r`参数加载 Winforms 程序集。 这是一个动态库。 该命令显示了 Ubuntu 系统上 DLL 库的路径。
## 使窗口居中
......@@ -168,7 +168,7 @@ End Try
```
最好将所有输入输出工作放在 Try / Catch 关键字之间。 web.ico 文件必须在当前工作目录中可用。 这是我们执行(./icon.exe)应用的目录。
最好将所有输入输出工作放在`Try/Catch`关键字之间。 `web.ico`文件必须在当前工作目录中可用。 这是我们执行(`./icon.exe`)应用的目录。
![Icon](img/e381e35edd258e1377f619127699bfa1.jpg)
......
......@@ -15,7 +15,7 @@ Winforms 中的每个控件都可以具有以下`AnchorStyles`值之一:
*
* 底部
注意,控件不限于一个值。 他们可以使用|取这些值的任何 combinatino。 运算符。
注意,控件不限于一个值。 他们可以使用`|`取这些值的任何组合。 运算符。
## 基本`Anchor`示例
......@@ -75,7 +75,7 @@ End Class
```
这是一个非常基本的代码示例,清楚地显示了`Anchor`属性的含义。 我们在表单上有两个按钮。 第一个按钮具有默认的`AnchorStyles`值,即 AnchorStyles。 AnchorStyles.Left。 第二个按钮已显式设置 AnchorStyles.Right
这是一个非常基本的代码示例,清楚地显示了`Anchor`属性的含义。 我们在表单上有两个按钮。 第一个按钮具有默认的`AnchorStyles`值,即`AnchorStyles.Left`。 第二个按钮已显式设置`AnchorStyles.Right`
```
btn2.Anchor = AnchorStyles.Right
......
......@@ -400,7 +400,7 @@ End Class
```
这是`TreeView`控件的非常简单的演示。 我们有一个根项目和三个孩子
这是`TreeView`控件的非常简单的演示。 我们有一个根项目和三个子项
```
tv = New TreeView
......
......@@ -6,7 +6,7 @@
在设计应用的 GUI 时,我们决定要使用哪些小部件以及如何在应用中组织这些小部件。 为了组织小部件,我们使用专门的不可见对象,称为布局管理器。
有两种小部件:容器及其子级。 容器将孩子分组为合适的布局。
有两种小部件:容器及其子级。 容器将子项分组为合适的布局。
Tkinter 具有三个内置的布局管理器:`pack``grid``place`管理器。 `place`几何管理器使用绝对定位来定位小部件。 `pack`几何管理器在水平和垂直框中组织窗口小部件。 `grid`几何管理器将小部件放置在二维网格中。
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/tutorials/javaswingtutorial/swinglayoutmanagement/](http://zetcode.com/tutorials/javaswingtutorial/swinglayoutmanagement/)
Java Swing 具有两种组件:容器和子组件。 容器将孩子分组为合适的布局。 要创建布局,我们使用布局管理器。
Java Swing 具有两种组件:容器和子组件。 容器将子项分组为合适的布局。 要创建布局,我们使用布局管理器。
[Tweet](https://twitter.com/share)
......
......@@ -309,7 +309,7 @@ Figure: A row of buttons created with a HBox
## `BorderPane`
`BorderPane`孩子放在顶部,左侧,右侧,底部和中央位置。 它可以用来创建经典外观的应用布局。
`BorderPane`子项放在顶部,左侧,右侧,底部和中央位置。 它可以用来创建经典外观的应用布局。
`BorderPaneEx.java`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册