提交 60b2a675 编写于 作者: W wizardforcel

2020-06-21 15:06:43

上级 b28adec2
......@@ -78,7 +78,7 @@ lbl.setPixmap(pixmap)
## `QtGui.QLineEdit`
`QtGui.QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 该小部件具有撤消和重做,剪切和粘贴以及拖动&放置功能。
`QtGui.QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 该小部件具有撤消和重做,剪切和粘贴以及拖功能。
```
#!/usr/bin/python
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/pyqt4/dragdrop/](http://zetcode.com/gui/pyqt4/dragdrop/)
在 PyQt4 教程的这一部分中,我们将讨论拖动&放置操作。
在 PyQt4 教程的这一部分中,我们将讨论拖操作。
在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到其他位置或另一个虚拟对象上的动作(或支持以下动作)。 通常,它可用于调用多种动作,或在两个抽象对象之间创建各种类型的关联。
......@@ -222,7 +222,7 @@ if __name__ == '__main__':
```
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上显示“按”消息。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放&拖放操作。
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上显示“按”消息。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放操作。
```
class Button(QtGui.QPushButton):
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/pysidetutorial/dragdrop/](http://zetcode.com/gui/pysidetutorial/dragdrop/)
在 PySide 教程的这一部分中,我们将讨论拖动&放置操作。
在 PySide 教程的这一部分中,我们将讨论拖操作。
在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到其他位置或另一个虚拟对象上的动作(或支持以下动作)。 通常,它可用于调用多种动作,或在两个抽象对象之间创建各种类型的关联。 (维基百科)
......@@ -218,7 +218,7 @@ if __name__ == '__main__':
```
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上打印“按”。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放&拖放操作。
在我们的代码示例中,窗口上有一个`QtGui.QPushButton`。 如果我们用鼠标左键单击该按钮,则会在控制台上打印“按”。 通过右键单击并移动按钮,我们在按钮小部件上执行拖放操作。
```
class Button(QtGui.QPushButton):
......@@ -228,7 +228,7 @@ class Button(QtGui.QPushButton):
```
我们创建一个`Button`类,该类将从`QtGui.QPushButton`派生。 我们还重新实现了`QtGui.QPushButton`的两种方法`mouseMoveEvent()``mousePressEvent()``mouseMoveEvent()`方法是拖动&放置操作开始的地方。
我们创建一个`Button`类,该类将从`QtGui.QPushButton`派生。 我们还重新实现了`QtGui.QPushButton`的两种方法`mouseMoveEvent()``mousePressEvent()``mouseMoveEvent()`方法是拖操作开始的地方。
```
if event.buttons() != QtCore.Qt.RightButton:
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/csharpwinforms/dragdrop/](http://zetcode.com/gui/csharpwinforms/dragdrop/)
Mono Winforms 教程的这一部分将专门用于拖动&放置操作。
Mono Winforms 教程的这一部分将专门用于拖操作。
在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到其他位置或另一个虚拟对象上的动作(或支持以下动作)。 通常,它可用于调用多种动作,或在两个抽象对象之间创建各种类型的关联。 (维基百科)
......@@ -123,9 +123,9 @@ Figure: Dragging a button
## 拖动文字
在前面的示例中,我们确实拖放了控件。 接下来,我们将对文本数据进行拖放&拖放操作。 在这里,我们将使用 Winforms 库提供的拖放&拖放协议。
在前面的示例中,我们确实拖放了控件。 接下来,我们将对文本数据进行拖放操作。 在这里,我们将使用 Winforms 库提供的拖放协议。
动&放置操作是 Winforms 中的标准通信协议。 我们有两个基本对象。 拖动源和放置目标。
操作是 Winforms 中的标准通信协议。 我们有两个基本对象。 拖动源和放置目标。
`dragtext.cs`
......@@ -236,7 +236,7 @@ private void OnMouseDown(object sender, MouseEventArgs e)
```
`OnMouseDown()`方法中,我们初始化了拖放过程。 我们使用`DoDragDrop()`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖动&放置操作期间复制文本或移动文本。
`OnMouseDown()`方法中,我们初始化了拖放过程。 我们使用`DoDragDrop()`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖操作期间复制文本或移动文本。
```
private void OnDragEnter(object sender, DragEventArgs e)
......@@ -402,4 +402,4 @@ Refresh();
我们必须调用`Refresh()`方法来激活新的画笔颜色。
本章专门使用 Mono Winforms 库拖动&放置操作。
\ No newline at end of file
本章专门使用 Mono Winforms 库拖放操作。
\ No newline at end of file
......@@ -225,7 +225,7 @@ Figure: QLabel
## `QLineEdit`
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 `QLineEdit`小部件具有撤消/重做,剪切/粘贴和拖动&放置功能。
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 `QLineEdit`小部件具有撤消/重做,剪切/粘贴和拖功能。
```
package com.zetcode;
......
......@@ -79,7 +79,7 @@ lbl.setPixmap(pixmap)
## `QLineEdit`
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 该小部件具有撤消和重做,剪切和粘贴以及拖动&放置功能。
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 该小部件具有撤消和重做,剪切和粘贴以及拖功能。
`lineedit.py`
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/pyqt5/dragdrop/](http://zetcode.com/gui/pyqt5/dragdrop/)
在 PyQt5 教程的这一部分中,我们将讨论拖动&放置操作。
在 PyQt5 教程的这一部分中,我们将讨论拖操作。
在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到其他位置或另一个虚拟对象上的动作(或支持以下动作)。 通常,它可用于调用多种动作,或在两个抽象对象之间创建各种类型的关联。
......
......@@ -230,7 +230,7 @@ Figure: QLabel
## `QLineEdit`
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 `QLineEdit`小部件具有撤消/重做,剪切/粘贴和拖动&放置功能。
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 `QLineEdit`小部件具有撤消/重做,剪切/粘贴和拖功能。
```
using System;
......
......@@ -210,7 +210,7 @@ Figure: Qt::Label
## `Qt::LineEdit`
`Qt::LineEdit`是一个小部件,允许输入和编辑单行纯文本。 `Qt::LineEdit`小部件具有撤消/重做,剪切/粘贴和拖动&放置功能。
`Qt::LineEdit`是一个小部件,允许输入和编辑单行纯文本。 `Qt::LineEdit`小部件具有撤消/重做,剪切/粘贴和拖功能。
```
#!/usr/bin/ruby
......
......@@ -225,7 +225,7 @@ Figure: QLabel
## `QLineEdit`
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 `QLineEdit`小部件具有撤消/重做,剪切/粘贴和拖动&放置功能。
`QLineEdit`是一个小部件,允许输入和编辑单行纯文本。 `QLineEdit`小部件具有撤消/重做,剪切/粘贴和拖功能。
```
' ZetCode Mono Visual Basic Qt tutorial
......
......@@ -6,7 +6,7 @@
## `RadioButton`
与其他 RadioButton 控件配对时,`RadioButton`控件使用户能够从一组选项中选择一个选项。 `GroupBox`控件用于将单选按钮配对在一起。
与其他`RadioButton`控件配对时,`RadioButton`控件使用户能够从一组选项中选择一个选项。 `GroupBox`控件用于将单选按钮配对在一起。
`radiobutton.py`
......@@ -76,7 +76,7 @@ male.Parent = gb
```
创建带有文本“ Male”的`RadioButton`控件。 它的父级是组框控件。
创建带有文本“`Male`”的`RadioButton`控件。 它的父级是组框控件。
```
def OnChanged(self, sender, event):
......
......@@ -185,7 +185,7 @@ name.Width = -1
```
对于列表视图中的每一列,我们创建一个`ColumnHeader`。 通过将`Width`设置为-1,列的宽度等于列中最长的项目。
对于列表视图中的每一列,我们创建一个`ColumnHeader`。 通过将`Width`设置为 -1,列的宽度等于列中最长的项目。
```
lv = ListView()
......@@ -469,14 +469,14 @@ self.tv.Scrollable = True
```
我们使 treeview 控件可滚动,因为该控件显示了大量目录。
我们使`TreeView`控件可滚动,因为该控件显示了大量目录。
```
self.ShowDirectories(self.tv.Nodes, HOME_DIR)
```
`ShowDirectories()`方法使用指定主目录中可用的目录填充 treview 控件的节点。
`ShowDirectories()`方法使用指定主目录中可用的目录填充`TreeView`控件的节点。
```
if (subDirs.Length > 0):
......@@ -500,7 +500,7 @@ trvNode.Add(tr)
```
此代码行实际上将目录添加到 treeview 控件。
此代码行实际上将目录添加到`TreeView`控件。
```
def OnExpand(self, sender, event):
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/tutorials/ironpythontutorial/dragdrop/](http://zetcode.com/tutorials/ironpythontutorial/dragdrop/)
IronPython Mono Winforms 教程的这一部分将专门用于拖动&放置操作。
IronPython Mono Winforms 教程的这一部分将专门用于拖操作。
在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到其他位置或另一个虚拟对象上的动作(或支持以下动作)。 通常,它可用于调用多种动作,或在两个抽象对象之间创建各种类型的关联。 (维基百科)
......@@ -101,9 +101,9 @@ Figure: Dragging a button
## 拖动文字
在前面的示例中,我们确实拖动了控件上的&拖放。 接下来,我们将对文本数据进行拖放&拖放操作。 在这里,我们将使用 Winforms 库提供的拖放&拖放协议。
在前面的示例中,我们确实拖动了控件上的&拖放。 接下来,我们将对文本数据进行拖放操作。 在这里,我们将使用 Winforms 库提供的拖放协议。
动&放置操作是 Winforms 中的标准通信协议。 我们有两个基本对象。 拖动源和放置目标。
操作是 Winforms 中的标准通信协议。 我们有两个基本对象。 拖动源和放置目标。
`dragtext.py`
......@@ -163,7 +163,7 @@ self.AllowDrop = True
```
我们将`AllowDrop`属性设置为 true。 默认情况下不启用删除。
我们将`AllowDrop`属性设置为`true`。 默认情况下不启用删除。
```
button.DragDrop += self.OnDragDrop
......@@ -182,7 +182,7 @@ def OnMousDown(self, sender, event):
```
`OnMousDown()`方法中,我们初始化了 drap &放置过程。 我们使用`DoDragDrop()`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖动&放置操作期间复制文本或移动文本。
`OnMousDown()`方法中,我们初始化了拖放过程。 我们使用`DoDragDrop()`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖放操作期间复制文本或移动文本。
```
def OnDragEnter(self, sender, event):
......@@ -330,4 +330,4 @@ self.Refresh()
Figure: Drag & drop image
本章专门使用 Mono Winforms 库拖动&放置操作。
\ No newline at end of file
本章专门使用 Mono Winforms 库拖放操作。
\ No newline at end of file
......@@ -334,7 +334,7 @@ Figure: Gradients
## 等待
在此示例中,我们使用透明效果创建一个等待演示。 我们将绘制 8 条线,这些线将逐渐消失,从而产生一种错觉,即一条线在移动。 这种效果通常用于通知用户,一项艰巨的任务正在幕后进行。 一个示例是通过 Internet 流式传输视频。
在此示例中,我们使用透明效果创建一个等待演示。 我们将绘制 8 条线,这些线将逐渐消失,从而产生一种错觉,即一条线在移动。 这种效果通常用于通知用户,一项艰巨的任务正在幕后进行。 一个示例是通过互联网流式传输视频。
`waiting.py`
......
# IronPython Mono Winforms 中的 Snake
# IronPython Mono Winforms 中的贪食蛇
> 原文: [http://zetcode.com/tutorials/ironpythontutorial/snake/](http://zetcode.com/tutorials/ironpythontutorial/snake/)
在 Mono IronPython Winforms 编程教程的这一部分中,我们将创建一个 Snake 游戏克隆。
在 Mono IronPython Winforms 编程教程的这一部分中,我们将创建一个贪食蛇游戏克隆。
## Snake 游戏
## 贪食蛇游戏
Snake 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。
贪食蛇是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。
## 开发
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 如果游戏结束,我们将在棋盘中间显示 Game Over 消息。
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 如果游戏结束,我们将在棋盘中间显示`Game Over`消息。
`board.py`
......@@ -200,7 +200,7 @@ class Board(UserControl):
首先,我们将定义游戏中使用的常量。
`WIDTH``HEIGHT`常数确定电路板的大小。 `DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义了板上可能的最大点数。 (900 = 300 * 300/10 * 10`RAND_POS`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。
`WIDTH``HEIGHT`常数确定电路板的大小。 `DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义了板上可能的最大点数。 (`900 = 300 * 300 / 10 * 10``RAND_POS`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。
```
x = [0] * ALL_DOTS
......@@ -264,7 +264,7 @@ r = rand.Next(RAND_POS)
```
我们得到一个从 0 到 RAND_POS-1 的随机数。
我们得到一个从 0 到`RAND_POS-1`的随机数。
```
self.apple_x = r * DOT_SIZE
......@@ -273,7 +273,7 @@ self.apple_y = r * DOT_SIZE
```
这些行设置了 apple 对象的 x,y 坐标。
这些行设置了`apple`对象的 x,y 坐标。
`OnKeyUp()`方法中,我们确定了键击玩家击键的时间。
......@@ -285,7 +285,7 @@ if key == Keys.Left and not self.right:
```
如果我们按左光标键,则将`self.left`变量设置为 True。 在`move()`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
如果我们按左光标键,则将`self.left`变量设置为`True`。 在`move()`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
`snake.py`
......@@ -341,4 +341,4 @@ board.TITLEBAR_HEIGHT = titleBarHeight
Figure: Snake
这是使用 Iron Win 编程语言的 Mono Winforms 库编程的 Snake 游戏。
\ No newline at end of file
这是使用 Iron Win 编程语言的 Mono Winforms 库编程的贪食蛇游戏。
\ No newline at end of file
......@@ -2,7 +2,7 @@
> [http://zetcode.com/tutorials/ironpythontutorial/tetris/](http://zetcode.com/tutorials/ironpythontutorial/tetris/)
俄罗斯方块游戏是有史以来最受欢迎的计算机游戏之一。 原始游戏是由俄罗斯程序员 Alexey Pajitnov 于 1985 年设计和编程的。此后,几乎所有版本的几乎所有计算机平台上都可以使用 Tetris。 甚至我的手机都有俄罗斯方块游戏的修改版。
俄罗斯方块游戏是有史以来最受欢迎的计算机游戏之一。 原始游戏是由俄罗斯程序员 Alexey Pajitnov 于 1985 年设计和编程的。此后,几乎所有版本的几乎所有计算机平台上都可以使用俄罗斯方块。 甚至我的手机都有俄罗斯方块游戏的修改版。
俄罗斯方块被称为下降块益智游戏。 在这个游戏中,我们有七个不同的形状,称为 tetrominoes 。 S 形,Z 形,T 形,L 形,线形,镜像 L 形和正方形。 这些形状中的每一个都形成有四个正方形。 形状从板上掉下来。 俄罗斯方块游戏的目的是移动和旋转形状,以便它们尽可能地适合。 如果我们设法形成一行,则该行将被破坏并得分。 我们玩俄罗斯方块游戏,直到达到顶峰。
......@@ -416,7 +416,7 @@ Application.Run(IForm())
```
我对游戏做了一些简化,以便于理解。 游戏启动后立即开始。 我们可以通过按 p 键暂停游戏。 `空格键`将把俄罗斯方块放在底部。 `d` 键会将棋子下降一行。 (它可以用来加快下降速度。)游戏以恒定速度运行,没有实现加速。 分数是我们已删除的行数。
我对游戏做了一些简化,以便于理解。 游戏启动后立即开始。 我们可以通过按`p`键暂停游戏。 空格键将把俄罗斯方块放在底部。 `d` 键会将棋子下降一行。 (它可以用来加快下降速度。)游戏以恒定速度运行,没有实现加速。 分数是我们已删除的行数。
```
class Tetrominoes(object):
......@@ -492,7 +492,7 @@ elif key == Keys.Left:
如果按向左箭头键,我们将尝试将棋子向左移动。 我们说尝试,因为这片可能无法移动。
`TryMove()`方法中,我们尝试移动形状。 如果无法移动该片段,则返回 False
`TryMove()`方法中,我们尝试移动形状。 如果无法移动该片段,则返回`False`
```
for i in range(4):
......@@ -505,7 +505,7 @@ for i in range(4):
```
如果形状在板的边缘或与其他零件相邻,则返回 False
如果形状在板的边缘或与其他零件相邻,则返回`False`
```
self.curPiece = newPiece
......@@ -516,7 +516,7 @@ return True
```
否则,我们将当前的下降片放到新位置并返回 True
否则,我们将当前的下降片放到新位置并返回`True`
```
def OnTick(self, sender, event):
......@@ -575,7 +575,7 @@ def NewPiece(self):
```
`NewPiece()`方法随机创建一个新的俄罗斯方块。 如果棋子无法进入其初始位置,例如 `TryMove()`方法返回 False,游戏结束。
`NewPiece()`方法随机创建一个新的俄罗斯方块。 如果棋子无法进入其初始位置,例如 `TryMove()`方法返回`False`,游戏结束。
```
colors = [ (0, 0, 0), (204, 102, 102),
......@@ -606,7 +606,7 @@ self.coords = [[0,0] for i in range(4)]
```
创建后,我们将创建一个空坐标列表。 该列表将保存俄罗斯方块的坐标。 例如,这些元组(0,-1),(0,0),(1、0),(1、1)表示旋转的 S 形。 下图说明了形状。
创建后,我们将创建一个空坐标列表。 该列表将保存俄罗斯方块的坐标。 例如,这些元组(0,-1),(0,0),(1,0),(1,1)表示旋转的 S 形。 下图说明了形状。
![Coordinates](img/f916788516714877eb20948c2d93e033.jpg)
......
......@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/gui/vbwinforms/dragdrop/](http://zetcode.com/gui/vbwinforms/dragdrop/)
Mono Visual Basic Winforms 教程的这一部分将专门用于拖动&放置操作。
Mono Visual Basic Winforms 教程的这一部分将专门用于拖操作。
在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到其他位置或另一个虚拟对象上的动作(或支持以下动作)。 通常,它可用于调用多种动作,或在两个抽象对象之间创建各种类型的关联。 (维基百科)
......@@ -125,9 +125,9 @@ Figure: Dragging a button
## 拖动文字
在前面的示例中,我们确实拖动了控件上的&拖放。 接下来,我们将对文本数据进行拖放&拖放操作。 在这里,我们将使用 Winforms 库提供的拖放&拖放协议。
在前面的示例中,我们确实拖动了控件上的&拖放。 接下来,我们将对文本数据进行拖放操作。 在这里,我们将使用 Winforms 库提供的拖放协议。
动&放置操作是 Winforms 中的标准通信协议。 我们有两个基本对象。 `drag source``drop target`
操作是 Winforms 中的标准通信协议。 我们有两个基本对象。 `drag source``drop target`
```
' ZetCode Mono Visual Basic Winforms tutorial
......@@ -242,7 +242,7 @@ End Sub
```
`OnMouseDown`方法中,我们初始化了 drap &放置过程。 我们使用`DoDragDrop`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖动&放置操作期间复制文本或移动文本。
`OnMouseDown`方法中,我们初始化了拖放过程。 我们使用`DoDragDrop`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖放操作期间复制文本或移动文本。
![Drag & drop of text](img/31cffdc8b2c808edd87369b61750d143.jpg)
......@@ -408,4 +408,4 @@ Me.Refresh
Figure: Drag & drop image
本章致力于使用带有 Visual Basic 语言的 Mono Winforms 库拖动&放置操作。
\ No newline at end of file
本章致力于使用带有 Visual Basic 语言的 Mono Winforms 库拖放操作。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册