提交 adb817ba 编写于 作者: W wizardforcel

2020-06-20 17:31:45

上级 aa3fb417
......@@ -828,7 +828,7 @@ private void gameInit() {
```
`gameInit()`方法中,我们创建了 24 个外星人。 外星人图像尺寸为`12x12px`。 我们在外星人中间放了`6px`的空间。 我们还创建了播放器和射击对象。
`gameInit()`方法中,我们创建了 24 个外星人。 外星人图像尺寸为`12x12px`。 我们在外星人中间放了 6px 的空间。 我们还创建了播放器和射击对象。
```
private void drawBombing(Graphics g) {
......@@ -969,7 +969,7 @@ if (!bomb.isDestroyed()) {
```
如果炸弹没有被销毁,它将离地面`1 px`。 如果到达底部,则设置销毁标志。 外星人现在准备投下另一枚炸弹。
如果炸弹没有被销毁,它将离地面 1px。 如果到达底部,则设置销毁标志。 外星人现在准备投下另一枚炸弹。
```
public void keyReleased(KeyEvent e) {
......
......@@ -612,7 +612,7 @@ for (int i = 0; i < world.size(); i++) {
```
我们遍历世界容器并绘制对象。 播放器和行李图像稍小。 我们在其坐标上添加`2px`以使其居中。
我们遍历世界容器并绘制对象。 播放器和行李图像稍小。 我们在其坐标上添加 2px 以使其居中。
```
if (isCompleted) {
......
......@@ -487,7 +487,7 @@ cairo_stroke(cr);
```
在此代码示例中,我们绘制具有`CAIRO_LINE_JOIN_MITER`连接样式的矩形。 线宽为`14px`
在此代码示例中,我们绘制具有`CAIRO_LINE_JOIN_MITER`连接样式的矩形。 线宽为 14px
![Line joins](img/f6d9a35c05f398c3a210cb25e78ece73.jpg)
......
......@@ -347,7 +347,7 @@ int main(int argc, char *argv[])
```
盲目效应背后的想法很简单。 图像高度为`h`像素。 我们绘制高度为`1px`的 0、1、2 ... 线。 每个周期,图像的一部分高`1px`,直到整个图像可见为止。
盲目效应背后的想法很简单。 图像高度为`h`像素。 我们绘制高度为 1px 的 0、1、2 ... 线。 每个周期,图像的一部分高 1px,直到整个图像可见为止。
```
struct {
......
......@@ -177,7 +177,7 @@ cairo_show_text(cr, "ZetCode");
```
第二个文本用灰色墨水绘制。 它向右和向下移动了`3px`
第二个文本用灰色墨水绘制。 它向右和向下移动了 3px
![Shaded text](img/6e39e7c9a2a487bc62938737ac25cc76.jpg)
......
......@@ -310,7 +310,7 @@ if __name__ == "__main__":
```
盲目效应背后的想法很简单。 图像高度为 h 像素。 我们绘制高度为`1px`的 0、1、2 ... 线。 每个周期,图像的一部分高`1px`,直到整个图像可见为止。
盲目效应背后的想法很简单。 图像高度为 h 像素。 我们绘制高度为 1px 的 0、1、2 ... 线。 每个周期,图像的一部分高 1px,直到整个图像可见为止。
```
def load_image(self):
......
......@@ -157,7 +157,7 @@ cr.show_text("ZetCode")
```
第二个文本用灰色墨水绘制。 它向右和向下移动了`3px`
第二个文本用灰色墨水绘制。 它向右和向下移动了 3px
![Shaded text](img/aa48c80d2848ae1dd206e4ed11ddb33c.jpg)
......
......@@ -154,7 +154,7 @@ def __init__(self, parent, title):
```
在构造函数中,我们将`wx.Frame`小部件的宽度设置为 350 px。 小部件的高度为 250 像素。
在构造函数中,我们将`wx.Frame`小部件的宽度设置为 350px。 小部件的高度为 250 像素。
同样,我们可以将应用放置在屏幕上。 默认情况下,窗口位于屏幕的左上角。 但是在各种 OS 平台甚至窗口管理器上,它可能都不同。 一些窗口管理器自己放置应用窗口。 他们中的一些人做了一些优化,以使窗口不会重叠。 程序员可以以编程方式定位窗口。 我们已经在`wx.Frame`小部件的构造函数中看到了`pos`参数。 通过提供默认值以外的其他值,我们可以自己控制位置。
......
......@@ -323,7 +323,7 @@ vbox.Add((-1, 25))
```
我们已经知道可以通过组合 flag 参数和 border 参数来控制小部件之间的距离。 但是有一个真正的约束。 在`Add()`方法中,我们只能为所有给定的边指定一个边框。 在我们的示例中,我们在右侧和左侧分别设置了 10 像素。 但是我们不能给底部 25 像素。 我们可以做的是在底部给 10 px,如果省略`wx.BOTTOM`则给 0 px。 因此,如果我们需要不同的值,则可以添加一些额外的空间。 使用`Add()`方法,我们也可以插入小部件和空间。
我们已经知道可以通过组合 flag 参数和 border 参数来控制小部件之间的距离。 但是有一个真正的约束。 在`Add()`方法中,我们只能为所有给定的边指定一个边框。 在我们的示例中,我们在右侧和左侧分别设置了 10 像素。 但是我们不能给底部 25 像素。 我们可以做的是在底部给 10px,如果省略`wx.BOTTOM`则给 0px。 因此,如果我们需要不同的值,则可以添加一些额外的空间。 使用`Add()`方法,我们也可以插入小部件和空间。
```py
vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10)
......
......@@ -1318,7 +1318,7 @@ Figure: Set operations on regions
| `wx.MM_POINTS` | 1 点,1/72 英寸 |
| `wx.MM_TWIPS` | 点的 1/20 或 1/1440 英寸 |
默认的映射模式是`wx.MM_TEXT`。 在此模式下,逻辑单元与设备单元相同。 人们将对象放置在屏幕上或设计网页时,他们通常以像素为单位思考。 Web 设计人员创建三列页面,这些列以像素为单位设置。 页面的最低公分母通常是 800 px 等。这种想法很自然,因为我们知道我们的显示器具有 1024x768 像素 我们不打算进行转换,而是习惯于以像素为单位进行思考。 如果要以毫米为单位绘制结构,则可以使用两种度量映射模式。 对于屏幕而言,以毫米为单位直接绘制太厚了,这就是为什么我们要使用`wx.MM_LOMETRIC`映射模式。
默认的映射模式是`wx.MM_TEXT`。 在此模式下,逻辑单元与设备单元相同。 人们将对象放置在屏幕上或设计网页时,他们通常以像素为单位思考。 Web 设计人员创建三列页面,这些列以像素为单位设置。 页面的最低公分母通常是 800px 等。这种想法很自然,因为我们知道我们的显示器具有 1024x768 像素 我们不打算进行转换,而是习惯于以像素为单位进行思考。 如果要以毫米为单位绘制结构,则可以使用两种度量映射模式。 对于屏幕而言,以毫米为单位直接绘制太厚了,这就是为什么我们要使用`wx.MM_LOMETRIC`映射模式。
要设置不同的映射模式,我们使用`SetMapMode()`方法。
......
......@@ -137,7 +137,7 @@ vbox->setSpacing(1);
```
我们创建`QVBoxLayout`并在子窗口小部件之间设置 1 px 的间距。
我们创建`QVBoxLayout`并在子窗口小部件之间设置 1px 的间距。
```
QPushButton *settings = new QPushButton("Settings", this);
......@@ -623,7 +623,7 @@ grid->setSpacing(2);
```
我们创建网格布局,并在子小部件之间设置 2 px 的空间。
我们创建网格布局,并在子小部件之间设置 2px 的空间。
```
QList<QString> values({ "7", "8", "9", "/",
......
......@@ -105,7 +105,7 @@ qp->setPen(pen);
```
我们创建一个`QPen`对象。 笔是实心的,2 px 粗,是黑色的。 笔用于绘制线条和形状轮廓。 使用`setPen()`方法将笔设置为画家对象。
我们创建一个`QPen`对象。 笔是实心的,2px 粗,是黑色的。 笔用于绘制线条和形状轮廓。 使用`setPen()`方法将笔设置为画家对象。
```
qp->drawLine(20, 40, 250, 40);
......
......@@ -346,7 +346,7 @@ grid .fr.area -row 1 -column 0 -columnspan 2 \
```
`text`小部件已创建,并从第二行第一列开始。 它跨越`2`列和`4`行。 小部件和根窗口的左边界之间有`4px`空间。 最后,它坚持所有四个方面。 因此,调整窗口大小时,`text`小部件会向各个方向扩展。
`text`小部件已创建,并从第二行第一列开始。 它跨越`2`列和`4`行。 小部件和根窗口的左边界之间有4px空间。 最后,它坚持所有四个方面。 因此,调整窗口大小时,`text`小部件会向各个方向扩展。
```
grid columnconfigure .fr 1 -weight 1
......
......@@ -57,7 +57,7 @@ Size = new Size(250, 200);
```
`Text``Size`是表单的属性。 更改这些属性,我们将修改表单控件。 第一行在表单控件的标题栏中显示文本“ Simple”。 第二行将表单的大小设置为 250x200 px。
`Text``Size`是表单的属性。 更改这些属性,我们将修改表单控件。 第一行在表单控件的标题栏中显示文本“ Simple”。 第二行将表单的大小设置为 250x200px。
```
CenterToScreen();
......@@ -212,7 +212,7 @@ button.Parent = this;
```
注意`Button`控件的创建。 `Text`属性是按钮的标签。 `Location`属性将按钮放在 x = 30,y = 70 px 坐标的表单上。 最后,`Parent`属性确定按钮所在的容器。
注意`Button`控件的创建。 `Text`属性是按钮的标签。 `Location`属性将按钮放在 x = 30,y = 70px 坐标的表单上。 最后,`Parent`属性确定按钮所在的容器。
![Tooltips](img/1384d0bc53cc8ce4de528552b995e2b0.jpg)
......
......@@ -390,7 +390,7 @@ table.ColumnSpacing = 3;
```
该示例基于`Table`容器。 列之间将有 3 px 的间距。
该示例基于`Table`容器。 列之间将有 3px 的间距。
```
Label title = new Label("Windows");
......
......@@ -423,7 +423,7 @@ table.set_col_spacings(3)
```
该示例基于`Table`容器。 列之间将有 3 px 的间距。
该示例基于`Table`容器。 列之间将有 3px 的间距。
```
title = gtk.Label("Windows")
......
......@@ -205,7 +205,7 @@ button.Location = Point(50, 70)
```
注意`Button`控件的创建。 `Parent`属性确定按钮所在的容器。 `Text`属性是按钮的标签。 `Location`属性将按钮放在表单上的 x = 30,y = 70 px 坐标处。
注意`Button`控件的创建。 `Parent`属性确定按钮所在的容器。 `Text`属性是按钮的标签。 `Location`属性将按钮放在表单上的 x = 30,y = 70px 坐标处。
![Tooltips](img/cdbd4f95c38e1912d3b3908a31216f7c.jpg)
......
......@@ -136,7 +136,7 @@ vbox->setSpacing(1);
```
我们创建`QVBoxLayout`并在子窗口小部件之间设置 1 px 的间距。
我们创建`QVBoxLayout`并在子窗口小部件之间设置 1px 的间距。
```cpp
QPushButton *settings = new QPushButton("Settings", this);
......@@ -620,7 +620,7 @@ grid->setSpacing(2);
```
我们创建网格布局,并在子小部件之间设置 2 px 的空间。
我们创建网格布局,并在子小部件之间设置 2px 的空间。
```cpp
QList<QString> values({ "7", "8", "9", "/",
......
......@@ -106,7 +106,7 @@ qp->setPen(pen);
```
我们创建一个`QPen`对象。 笔是实心的,2 px 粗,是黑色的。 笔用于绘制线条和形状轮廓。 使用`setPen()`方法将笔设置为画家对象。
我们创建一个`QPen`对象。 笔是实心的,2px 粗,是黑色的。 笔用于绘制线条和形状轮廓。 使用`setPen()`方法将笔设置为画家对象。
```cpp
qp->drawLine(20, 40, 250, 40);
......
......@@ -342,7 +342,7 @@ quitButton.place(x=50, y=50)
```
我们使用`place`几何图形管理器将按钮定位在绝对坐标中-从窗口的左上角起 50x50 px。
我们使用`place`几何图形管理器将按钮定位在绝对坐标中-从窗口的左上角起 50x50px。
![Quit button](img/a055854eab71b983ad90d73d43455852.jpg)
......
......@@ -214,7 +214,7 @@ okButton.pack(side=RIGHT)
```
`okButton`放在`closeButton`旁边,它们之间有 5 px 的间距。
`okButton`放在`closeButton`旁边,它们之间有 5px 的间距。
![Buttons example](img/f6d894af5ff066f7db22dbbfdd93851e.jpg)
......@@ -587,7 +587,7 @@ area.grid(row=1, column=0, columnspan=2, rowspan=4,
```
文本窗口小部件已创建,并从第二行和第一列开始。 它跨越两列和四行。 小部件和根窗口的左边框之间有 4 px 的间距。 最终,小部件将粘在所有四个方面。 因此,调整窗口大小时,文本小部件会向各个方向扩展。
文本窗口小部件已创建,并从第二行和第一列开始。 它跨越两列和四行。 小部件和根窗口的左边框之间有 4px 的间距。 最终,小部件将粘在所有四个方面。 因此,调整窗口大小时,文本小部件会向各个方向扩展。
```py
abtn = Button(self, text="Activate")
......
......@@ -72,7 +72,7 @@ canvas.create_line(300, 35, 300, 200, dash=(4, 2))
```
画一条垂直线。 `dash`选项指定线条的虚线图案。 我们有一条线,由 4 px 虚线和 2 px 间隔的交替部分组成。
画一条垂直线。 `dash`选项指定线条的虚线图案。 我们有一条线,由 4px 虚线和 2px 间隔的交替部分组成。
```py
canvas.create_line(55, 85, 155, 85, 105, 180, 55, 85)
......
......@@ -286,7 +286,7 @@ public class FrameIconEx extends JFrame {
```
`ImageIcon`用于创建图标。 `web.png`是一个 22x22 px 的小图像文件。
`ImageIcon`用于创建图标。 `web.png`是一个 22x22px 的小图像文件。
```java
var webIcon = new ImageIcon("src/resources/web.png");
......
......@@ -413,7 +413,7 @@ driveBtn.setBorder(new EmptyBorder(3, 0, 3, 0));
```
为了在按钮周围留一些空白,我们必须使用`EmptyBorder`。 这会在按钮的顶部和底部增加一些固定的空间。 当我们添加固定空间时,UI 不可移植。 3 px 的空间在 1280x720 的屏幕上可能看起来不错,但在 1920x1200 px 的屏幕上不合适。
为了在按钮周围留一些空白,我们必须使用`EmptyBorder`。 这会在按钮的顶部和底部增加一些固定的空间。 当我们添加固定空间时,UI 不可移植。 3px 的空间在 1280x720 的屏幕上可能看起来不错,但在 1920x1200px 的屏幕上不合适。
```java
add(vertical, BorderLayout.WEST);
......
......@@ -540,7 +540,7 @@ case Cursor.N_RESIZE_CURSOR:
```
对于所有大小调整,我们确保该组件不小于 50 px。 否则,我们可以将其减小到最终将其隐藏的程度。 `setBounds()`方法重新定位组件并调整其大小。
对于所有大小调整,我们确保该组件不小于 50px。 否则,我们可以将其减小到最终将其隐藏的程度。 `setBounds()`方法重新定位组件并调整其大小。
![Resizable component](img/a99d62c6e29cd6cd196145bb95948798.jpg)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册