提交 84fdb3d5 编写于 作者: W wizardforcel

2020-06-22 10:06:19

上级 fec061de
...@@ -134,7 +134,7 @@ ctx.globalCompositeOperation = value; ...@@ -134,7 +134,7 @@ ctx.globalCompositeOperation = value;
![Compositing](img/54afee8e590f0187b31730e330bfaa75.jpg) ![Compositing](img/54afee8e590f0187b31730e330bfaa75.jpg)
Figure: Compositing 图:合成
上图显示了`xor`合成操作。 在此规则中,将形状透明化,使其在其他地方重叠并正常绘制。 上图显示了`xor`合成操作。 在此规则中,将形状透明化,使其在其他地方重叠并正常绘制。
......
...@@ -117,7 +117,7 @@ ctx.font = "small-caps bolder 18px serif"; ...@@ -117,7 +117,7 @@ ctx.font = "small-caps bolder 18px serif";
![Text font](img/2f13db4304c027fabdf5d0d392a293dd.jpg) ![Text font](img/2f13db4304c027fabdf5d0d392a293dd.jpg)
Figure: Text font 图:文本字体
## 文字基线 ## 文字基线
...@@ -191,7 +191,7 @@ ctx.fillText('Top', 5, 100); ...@@ -191,7 +191,7 @@ ctx.fillText('Top', 5, 100);
![Text baseline](img/71f97b84c9523ce697f3b40026db7fa0.jpg) ![Text baseline](img/71f97b84c9523ce697f3b40026db7fa0.jpg)
Figure: Text baseline 图:文字基线
## 文字对齐 ## 文字对齐
...@@ -280,6 +280,6 @@ ctx.fillText("center", cw, 20); ...@@ -280,6 +280,6 @@ ctx.fillText("center", cw, 20);
![Text alignment](img/3c03c484b9ebf52952f13c6dcab00ad6.jpg) ![Text alignment](img/3c03c484b9ebf52952f13c6dcab00ad6.jpg)
Figure: Text alignment 图:文本对齐
在 HTML5 画布教程的这一部分中,我们介绍了文本。 在 HTML5 画布教程的这一部分中,我们介绍了文本。
\ No newline at end of file
...@@ -155,7 +155,7 @@ SetMenu(hwnd, hMenubar); ...@@ -155,7 +155,7 @@ SetMenu(hwnd, hMenubar);
![A menu example](img/39f8bef8c509ee59e9afc3d7feb0e767.jpg) ![A menu example](img/39f8bef8c509ee59e9afc3d7feb0e767.jpg)
Figure: A simple menu 图:简单菜单
## 弹出菜单 ## 弹出菜单
...@@ -303,7 +303,7 @@ DestroyMenu(hMenu); ...@@ -303,7 +303,7 @@ DestroyMenu(hMenu);
![A popup menu](img/83e5ddd2cfb4635e3f3de9ec62bccce4.jpg) ![A popup menu](img/83e5ddd2cfb4635e3f3de9ec62bccce4.jpg)
Figure: A popup menu 图:弹出菜单
## 复选菜单项 ## 复选菜单项
...@@ -479,7 +479,7 @@ case WM_SIZE: ...@@ -479,7 +479,7 @@ case WM_SIZE:
![A check menu item](img/7c97e075fbf2061d9152bc207f64b507.jpg) ![A check menu item](img/7c97e075fbf2061d9152bc207f64b507.jpg)
Figure: A check menu item 图:复选菜单项
## 单选菜单项 ## 单选菜单项
...@@ -636,7 +636,7 @@ AppendMenuW(hMenubar, MF_POPUP, (UINT_PTR) hMenu, L"&Map mode"); ...@@ -636,7 +636,7 @@ AppendMenuW(hMenubar, MF_POPUP, (UINT_PTR) hMenu, L"&Map mode");
![A radio menu item](img/6904cf2c9e454abf9201d386599d4b5d.jpg) ![A radio menu item](img/6904cf2c9e454abf9201d386599d4b5d.jpg)
Figure: A radio menu item 图:单选菜单项
## 子菜单 ## 子菜单
......
...@@ -102,7 +102,7 @@ self.SetMenuBar(menubar) ...@@ -102,7 +102,7 @@ self.SetMenuBar(menubar)
![A simple menu example](img/4000fe3446a084d2e251e3687eae9c80.jpg) ![A simple menu example](img/4000fe3446a084d2e251e3687eae9c80.jpg)
Figure: A simple menu example 图:简单菜单 example
## 图标和快捷方式 ## 图标和快捷方式
......
...@@ -127,7 +127,7 @@ CreateWindowExW(WS_EX_DLGMODALFRAME | WS_EX_TOPMOST, L"DialogClass", L"Dialog B ...@@ -127,7 +127,7 @@ CreateWindowExW(WS_EX_DLGMODALFRAME | WS_EX_TOPMOST, L"DialogClass", L"Dialog B
![Modeless dialog](img/3bbfc12882032e5accacbcecf0b54cae.jpg) ![Modeless dialog](img/3bbfc12882032e5accacbcecf0b54cae.jpg)
Figure: Modeless dialog 图:非模态对话
## 常用对话框 ## 常用对话框
...@@ -475,6 +475,6 @@ if(GetOpenFileName(&ofn)) ...@@ -475,6 +475,6 @@ if(GetOpenFileName(&ofn))
![Openfile dialog box](img/d22cfd7587ea2277a8f7adaa8725c3a0.jpg) ![Openfile dialog box](img/d22cfd7587ea2277a8f7adaa8725c3a0.jpg)
Figure: Openfile dialog box 图:打开文件对话框
在 Windows API 教程的这一部分中,我们使用了对话框。 在 Windows API 教程的这一部分中,我们使用了对话框。
\ No newline at end of file
...@@ -551,6 +551,6 @@ if (HIWORD(wParam) == BN_CLICKED) { ...@@ -551,6 +551,6 @@ if (HIWORD(wParam) == BN_CLICKED) {
![Edit control](img/14f0e5607d86051a2cb451a6e25a2129.jpg) ![Edit control](img/14f0e5607d86051a2cb451a6e25a2129.jpg)
Figure: Edit control 图:编辑控件
在 Windows API 教程的这一部分中,我们介绍了四个基本的 Windows 控件。 在 Windows API 教程的这一部分中,我们介绍了四个基本的 Windows 控件。
\ No newline at end of file
...@@ -463,7 +463,7 @@ else: ...@@ -463,7 +463,7 @@ else:
![Message box](img/e4f742057997ac3ccc77d66c39fc55cb.jpg) ![Message box](img/e4f742057997ac3ccc77d66c39fc55cb.jpg)
Figure: Message box 图:消息框
## 屏幕上的居中窗口 ## 屏幕上的居中窗口
......
...@@ -187,7 +187,7 @@ void UpdateLabel(void) { ...@@ -187,7 +187,7 @@ void UpdateLabel(void) {
![Trackbar](img/fe3f350003d333bc56e4584d807d0379.jpg) ![Trackbar](img/fe3f350003d333bc56e4584d807d0379.jpg)
Figure: Trackbar 图:跟踪栏
## 工具提示 ## 工具提示
...@@ -522,7 +522,7 @@ SetWindowTextW(hStatic, buf); ...@@ -522,7 +522,7 @@ SetWindowTextW(hStatic, buf);
![UpDown control](img/c162c5f9ea317035c15aa3f9863e2e31.jpg) ![UpDown control](img/c162c5f9ea317035c15aa3f9863e2e31.jpg)
Figure: UpDown control 图:UpDown 控件
## `MonthCalendar`控件 ## `MonthCalendar`控件
...@@ -693,6 +693,6 @@ SetWindowTextW(hStat, buf); ...@@ -693,6 +693,6 @@ SetWindowTextW(hStat, buf);
![Month Calendar](img/1dc5612c71952c62f2a297601db957c8.jpg) ![Month Calendar](img/1dc5612c71952c62f2a297601db957c8.jpg)
Figure: Month Calendar 图:月历
在 Windows API 教程的这一部分中,我们继续介绍 Windows 控件-跟踪栏,工具提示,上下按钮和月份日历。 在 Windows API 教程的这一部分中,我们继续介绍 Windows 控件-跟踪栏,工具提示,上下按钮和月份日历。
\ No newline at end of file
...@@ -160,7 +160,7 @@ InvalidateRect(hwnd, NULL, TRUE); ...@@ -160,7 +160,7 @@ InvalidateRect(hwnd, NULL, TRUE);
![Radio buttons in a GroupBox](img/6dc2af7ea5a6c31ff5bda0c96dc275d0.jpg) ![Radio buttons in a GroupBox](img/6dc2af7ea5a6c31ff5bda0c96dc275d0.jpg)
Figure: Radio buttons in a GroupBox 图:`GroupBox`中的单选按钮
## `ComboBox` ## `ComboBox`
...@@ -303,7 +303,7 @@ if (HIWORD(wParam) == CBN_SELCHANGE) { ...@@ -303,7 +303,7 @@ if (HIWORD(wParam) == CBN_SELCHANGE) {
![Combo box](img/d71785010bdc2523affefe1db4217d8b.jpg) ![Combo box](img/d71785010bdc2523affefe1db4217d8b.jpg)
Figure: Combo box 图:组合框
## 进度条 ## 进度条
...@@ -475,6 +475,6 @@ case WM_TIMER: ...@@ -475,6 +475,6 @@ case WM_TIMER:
![Progress bar](img/fbfa999a24b2ec4457227202844c0497.jpg) ![Progress bar](img/fbfa999a24b2ec4457227202844c0497.jpg)
Figure: Progress bar 图:进度条
在 Windows API 教程的这一部分中,我们已经完成了 Windows 控件的介绍。 在 Windows API 教程的这一部分中,我们已经完成了 Windows 控件的介绍。
\ No newline at end of file
...@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) { ...@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) {
![Click](img/b3463a5162edfcb31828312d07e3cbba.jpg) ![Click](img/b3463a5162edfcb31828312d07e3cbba.jpg)
Figure: Click 图:点击
## 按键 ## 按键
...@@ -533,6 +533,6 @@ int main(int argc, char *argv[]) { ...@@ -533,6 +533,6 @@ int main(int argc, char *argv[]) {
![Timer](img/850cc32b12567f3ca4ed0032036e05eb.jpg) ![Timer](img/850cc32b12567f3ca4ed0032036e05eb.jpg)
Figure: Timer 图:计时器
本章专门介绍 Qt4 中的事件和信号。 本章专门介绍 Qt4 中的事件和信号。
\ No newline at end of file
...@@ -185,7 +185,7 @@ SendMessageW(hTab, TCM_DELETEALLITEMS, 0, 0); ...@@ -185,7 +185,7 @@ SendMessageW(hTab, TCM_DELETEALLITEMS, 0, 0);
![Tab control](img/eab15eb19b6fda0d8a3f52f67c5b9d69.jpg) ![Tab control](img/eab15eb19b6fda0d8a3f52f67c5b9d69.jpg)
Figure: Tab control 图:标签控件
## 列表框 ## 列表框
...@@ -326,6 +326,6 @@ if (HIWORD(wParam) == LBN_SELCHANGE) { ...@@ -326,6 +326,6 @@ if (HIWORD(wParam) == LBN_SELCHANGE) {
![list box](img/11d3c1a292f13f6eb1590bd873b3ca46.jpg) ![list box](img/11d3c1a292f13f6eb1590bd873b3ca46.jpg)
Figure: List Box 图:列表框
在 Windows API 教程的这一部分中,我们介绍了两个更高级的 Windows 控件。 在 Windows API 教程的这一部分中,我们介绍了两个更高级的 Windows 控件。
\ No newline at end of file
...@@ -428,7 +428,7 @@ else: ...@@ -428,7 +428,7 @@ else:
![message box](img/ce9801ebd1c3ea683a2d899df66cab62.jpg) ![message box](img/ce9801ebd1c3ea683a2d899df66cab62.jpg)
Figure: Message box 图:消息框
## 屏幕上的居中窗口 ## 屏幕上的居中窗口
......
...@@ -198,6 +198,6 @@ LRESULT CALLBACK PanelProc(HWND hwnd, UINT msg, ...@@ -198,6 +198,6 @@ LRESULT CALLBACK PanelProc(HWND hwnd, UINT msg,
![Burning control](img/52c33bbda7a2cb616fe6ef5ed86671b9.jpg) ![Burning control](img/52c33bbda7a2cb616fe6ef5ed86671b9.jpg)
Figure: Burning control 图:烧录控件
在 Windows API 教程的这一部分中,我们创建了烧录自定义控件。 在 Windows API 教程的这一部分中,我们创建了烧录自定义控件。
\ No newline at end of file
...@@ -175,7 +175,7 @@ EndPaint(hwnd, &ps); ...@@ -175,7 +175,7 @@ EndPaint(hwnd, &ps);
![Pixels](img/f0ffcced2a58566ca8c3a6c4048b5031.jpg) ![Pixels](img/f0ffcced2a58566ca8c3a6c4048b5031.jpg)
Figure: Pixels 图:像素
## 直线 ## 直线
...@@ -384,7 +384,7 @@ Rectangle(hdc, 50, 50, 200, 100); ...@@ -384,7 +384,7 @@ Rectangle(hdc, 50, 50, 200, 100);
![Rectangle](img/31525c69b42bbd56f63009f1ea9cc1e1.jpg) ![Rectangle](img/31525c69b42bbd56f63009f1ea9cc1e1.jpg)
Figure: Rectangle 图:矩形
## 贝塞尔曲线 ## 贝塞尔曲线
...@@ -913,7 +913,7 @@ HBRUSH holdBrush = SelectObject(hdc, hBrush1); ...@@ -913,7 +913,7 @@ HBRUSH holdBrush = SelectObject(hdc, hBrush1);
![Solid brushes](img/464b622685a78f29fab4407225bfbb34.jpg) ![Solid brushes](img/464b622685a78f29fab4407225bfbb34.jpg)
Figure: Solid brushes 图:实心刷
### 舱口笔刷 ### 舱口笔刷
...@@ -1053,7 +1053,7 @@ DeleteObject(hBrush1); ...@@ -1053,7 +1053,7 @@ DeleteObject(hBrush1);
![Hatch brushes](img/1b757c6456ef291fbd5a4d8bf7cb8dc2.jpg) ![Hatch brushes](img/1b757c6456ef291fbd5a4d8bf7cb8dc2.jpg)
Figure: Hatch brushes 图:舱口刷
### 定制笔刷 ### 定制笔刷
...@@ -1188,7 +1188,7 @@ Rectangle(hdc, 20, 20, 250, 160); ...@@ -1188,7 +1188,7 @@ Rectangle(hdc, 20, 20, 250, 160);
![Custom brush](img/6792b4a9be7d9bc81079ee78b5733541.jpg) ![Custom brush](img/6792b4a9be7d9bc81079ee78b5733541.jpg)
Figure: Custom brush 图:自定义刷
## 形状 ## 形状
...@@ -1563,7 +1563,7 @@ TextOutW(hdc, 50, 20, verse1, lstrlenW(verse1)); ...@@ -1563,7 +1563,7 @@ TextOutW(hdc, 50, 20, verse1, lstrlenW(verse1));
![Text](img/7c49db088ef719a2acb91793554f1ace.jpg) ![Text](img/7c49db088ef719a2acb91793554f1ace.jpg)
Figure: Text 图:文本
## 绘制位图 ## 绘制位图
...@@ -1725,6 +1725,6 @@ DeleteDC(hdcMem); ...@@ -1725,6 +1725,6 @@ DeleteDC(hdcMem);
![Drawing a bitmap](img/dd130a2a5dcd44239eb30c20772115f1.jpg) ![Drawing a bitmap](img/dd130a2a5dcd44239eb30c20772115f1.jpg)
Figure: Drawing a bitmap 图:绘制位图
在 Windows API 教程的这一部分中,我们进行了一些绘制。 在 Windows API 教程的这一部分中,我们进行了一些绘制。
\ No newline at end of file
...@@ -455,7 +455,7 @@ else: ...@@ -455,7 +455,7 @@ else:
![Message box](img/2103dacd426f497b2bc5075009127ef9.jpg) ![Message box](img/2103dacd426f497b2bc5075009127ef9.jpg)
Figure: Message box 图:消息框
## 屏幕上的居中窗口 ## 屏幕上的居中窗口
......
...@@ -318,7 +318,7 @@ def toggleMenu(self, state): ...@@ -318,7 +318,7 @@ def toggleMenu(self, state):
![Check menu](img/c2648ba6d8097f4aa652822c9fc9bb3b.jpg) ![Check menu](img/c2648ba6d8097f4aa652822c9fc9bb3b.jpg)
Figure: Check menu 图:复现菜单
## 上下文菜单 ## 上下文菜单
...@@ -546,6 +546,6 @@ self.setCentralWidget(textEdit) ...@@ -546,6 +546,6 @@ self.setCentralWidget(textEdit)
![Main window](img/d9f4a89355e0c1d4aa81368526f22896.jpg) ![Main window](img/d9f4a89355e0c1d4aa81368526f22896.jpg)
Figure: Main window 图:主窗口
在 PyQt5 教程的这一部分中,我们使用了菜单,工具栏,状态栏和主应用窗口。 在 PyQt5 教程的这一部分中,我们使用了菜单,工具栏,状态栏和主应用窗口。
\ No newline at end of file
...@@ -254,7 +254,7 @@ def mouseMoveEvent(self, e): ...@@ -254,7 +254,7 @@ def mouseMoveEvent(self, e):
![Event object](img/bf80aaf142295818c7bc55da8a0f53d8.jpg) ![Event object](img/bf80aaf142295818c7bc55da8a0f53d8.jpg)
Figure: Event object 图:事件对象
## 事件发送者 ## 事件发送者
...@@ -339,7 +339,7 @@ def buttonClicked(self): ...@@ -339,7 +339,7 @@ def buttonClicked(self):
![Event sender](img/d359142324a0211688a0cf5af8ca138e.jpg) ![Event sender](img/d359142324a0211688a0cf5af8ca138e.jpg)
Figure: Event sender 图:事件发送者
## 发射信号 ## 发射信号
......
...@@ -113,7 +113,7 @@ window.setWindowTitle("ToolTip"); ...@@ -113,7 +113,7 @@ window.setWindowTitle("ToolTip");
![A tooltip](img/cad3822bb4d5bb00f713083b3eca0b42.jpg) ![A tooltip](img/cad3822bb4d5bb00f713083b3eca0b42.jpg)
Figure: A tooltip 图:工具提示
## 应用图标 ## 应用图标
...@@ -437,6 +437,6 @@ int main(int argc, char *argv[]) { ...@@ -437,6 +437,6 @@ int main(int argc, char *argv[]) {
![Plus minus](img/abeb77138814b8e9410d008e836ad42f.jpg) ![Plus minus](img/abeb77138814b8e9410d008e836ad42f.jpg)
Figure: Plus minus 图:正负
在本章中,我们在 Qt5 中创建了第一个程序。 在本章中,我们在 Qt5 中创建了第一个程序。
\ No newline at end of file
...@@ -343,7 +343,7 @@ int main(int argc, char *argv[]) { ...@@ -343,7 +343,7 @@ int main(int argc, char *argv[]) {
![Checkable menu](img/aa980791642a722e2709ba04ca29847c.jpg) ![Checkable menu](img/aa980791642a722e2709ba04ca29847c.jpg)
Figure: Checkable menu 图:可选菜单
## `QToolBar` ## `QToolBar`
......
...@@ -265,6 +265,6 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, ...@@ -265,6 +265,6 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
![A message box](img/50fc2f07906db72f49b83608aaa5d024.jpg) ![A message box](img/50fc2f07906db72f49b83608aaa5d024.jpg)
Figure: A message box 图:消息框
在 Windows API 教程的这一部分中,我们提到了`main`函数。 在 Windows API 教程的这一部分中,我们提到了`main`函数。
\ No newline at end of file
...@@ -66,11 +66,11 @@ ledit->setGeometry(5, 5, 200, 150); ...@@ -66,11 +66,11 @@ ledit->setGeometry(5, 5, 200, 150);
![Before resizement](img/c942c8661ff3e58e73778bd29230a055.jpg) ![Before resizement](img/c942c8661ff3e58e73778bd29230a055.jpg)
Figure: before resizement 图:调整大小前
![After resizement](img/8a5b78174a280b2b277f60a7308422a1.jpg) ![After resizement](img/8a5b78174a280b2b277f60a7308422a1.jpg)
Figure: after resizement 图:调整大小后
## `QVBoxLayout` ## `QVBoxLayout`
...@@ -456,7 +456,7 @@ int main(int argc, char *argv[]) { ...@@ -456,7 +456,7 @@ int main(int argc, char *argv[]) {
![Nesting layouts](img/6a0c9fff072563f54762817b558f6549.jpg) ![Nesting layouts](img/6a0c9fff072563f54762817b558f6549.jpg)
Figure: Nesting layouts 图:嵌套布局
## `QFormLayout` ## `QFormLayout`
......
...@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) { ...@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) {
![Click](img/1eca07bc32bc4a3db6d6c0f9fbccb722.jpg) ![Click](img/1eca07bc32bc4a3db6d6c0f9fbccb722.jpg)
Figure: Click 图:点击
## 按键 ## 按键
...@@ -533,6 +533,6 @@ int main(int argc, char *argv[]) { ...@@ -533,6 +533,6 @@ int main(int argc, char *argv[]) {
![Timer](img/f6beffa162622612cdcb4465ceddeae9.jpg) ![Timer](img/f6beffa162622612cdcb4465ceddeae9.jpg)
Figure: Timer 图:计时器
本章专门介绍 Qt5 中的事件和信号。 本章专门介绍 Qt5 中的事件和信号。
\ No newline at end of file
...@@ -623,6 +623,6 @@ int main(int argc, char *argv[]) { ...@@ -623,6 +623,6 @@ int main(int argc, char *argv[]) {
![Statusbar example](img/4e5986a220a2490b1837948562be9c11.jpg) ![Statusbar example](img/4e5986a220a2490b1837948562be9c11.jpg)
Figure: Statusbar example 图:状态栏示例
在 Qt5 教程的这一部分中,我们介绍了几个 Qt5 小部件。 在 Qt5 教程的这一部分中,我们介绍了几个 Qt5 小部件。
\ No newline at end of file
...@@ -995,7 +995,7 @@ int main(int argc, char *argv[]) { ...@@ -995,7 +995,7 @@ int main(int argc, char *argv[]) {
![Radial gradient](img/7070726882120b1fe49ee3efa7f2e9ad.jpg) ![Radial gradient](img/7070726882120b1fe49ee3efa7f2e9ad.jpg)
Figure: Radial gradient 图:径向渐变
## 泡泡 ## 泡泡
......
...@@ -77,7 +77,7 @@ label1 = Label(self, text=txt, state=NORMAL) ...@@ -77,7 +77,7 @@ label1 = Label(self, text=txt, state=NORMAL)
![Widget state](img/ec510028e55907f568566aad8e0e48fa.jpg) ![Widget state](img/ec510028e55907f568566aad8e0e48fa.jpg)
Figure: Widget state 图:小部件状态
## Tkinter 小部件填充 ## Tkinter 小部件填充
...@@ -166,7 +166,7 @@ btn1.pack(side=TOP, pady=15) ...@@ -166,7 +166,7 @@ btn1.pack(side=TOP, pady=15)
![Padding](img/48ae13a08309ed0c21b52f13f2b53347.jpg) ![Padding](img/48ae13a08309ed0c21b52f13f2b53347.jpg)
Figure: Padding 图:填充
## 背景颜色 ## 背景颜色
...@@ -246,7 +246,7 @@ lbl1.pack(side=LEFT, padx=3) ...@@ -246,7 +246,7 @@ lbl1.pack(side=LEFT, padx=3)
![Background colours](img/5d3f7c363afcf19b5f7beece0821ac6d.jpg) ![Background colours](img/5d3f7c363afcf19b5f7beece0821ac6d.jpg)
Figure: Background colours 图:背景色
## 宽度和高度 ## 宽度和高度
...@@ -320,7 +320,7 @@ btn2 = Button(frame, text='Button', width=8) ...@@ -320,7 +320,7 @@ btn2 = Button(frame, text='Button', width=8)
![With and height attributes](img/895954c1235ee563038ccba97b180e02.jpg) ![With and height attributes](img/895954c1235ee563038ccba97b180e02.jpg)
Figure: With and height attributes 图:宽高属性
## Tkinter 浮雕 ## Tkinter 浮雕
...@@ -404,7 +404,7 @@ lbl3 = Label(frame, bg='LightSteelBlue3', bd=2, width=15, ...@@ -404,7 +404,7 @@ lbl3 = Label(frame, bg='LightSteelBlue3', bd=2, width=15,
![Reliefs](img/8c21bbfc00aa43b8eb57057ced295f71.jpg) ![Reliefs](img/8c21bbfc00aa43b8eb57057ced295f71.jpg)
Figure: Reliefs 图:浮雕
## Tkinter 字体 ## Tkinter 字体
...@@ -493,7 +493,7 @@ label3 = Label(self, text=txt, font=('Times', '18', 'italic')) ...@@ -493,7 +493,7 @@ label3 = Label(self, text=txt, font=('Times', '18', 'italic'))
![Tkinter fonts](img/2772351339742754d22c42d7a91bbc0c.jpg) ![Tkinter fonts](img/2772351339742754d22c42d7a91bbc0c.jpg)
Figure: Tkinter fonts 图:Tkinter 字体
## Tkinter 光标 ## Tkinter 光标
......
...@@ -180,7 +180,7 @@ self.frame.config(bg=hx) ...@@ -180,7 +180,7 @@ self.frame.config(bg=hx)
![Color chooser](img/c5c2e2897138d42c67dce78e6340e0aa.jpg) ![Color chooser](img/c5c2e2897138d42c67dce78e6340e0aa.jpg)
Figure: Color chooser 图:颜色选择器
## Tkinter 文件对话框 ## Tkinter 文件对话框
...@@ -297,6 +297,6 @@ self.txt.insert(END, text) ...@@ -297,6 +297,6 @@ self.txt.insert(END, text)
![File dialog](img/ff4a536f80cd73c4b14bfd73d3b1bd92.jpg) ![File dialog](img/ff4a536f80cd73c4b14bfd73d3b1bd92.jpg)
Figure: File dialog 图:文件对话框
在 Tkinter 教程的这一部分中,我们使用了对话框窗口。 在 Tkinter 教程的这一部分中,我们使用了对话框窗口。
\ No newline at end of file
...@@ -283,7 +283,7 @@ Label { ...@@ -283,7 +283,7 @@ Label {
![Slider](img/8cded1e3bc8945ae7c2c860a6f2493f6.jpg) ![Slider](img/8cded1e3bc8945ae7c2c860a6f2493f6.jpg)
Figure: Slider 图:滑块
## `NumberAnimation` ## `NumberAnimation`
......
...@@ -698,7 +698,7 @@ public JLabel createColouredLabel(Color col) { ...@@ -698,7 +698,7 @@ public JLabel createColouredLabel(Color col) {
![Standard colours](img/664bf8505ff04748b4069eff1cd739e3.jpg) ![Standard colours](img/664bf8505ff04748b4069eff1cd739e3.jpg)
Figure: Standard colours 图:标准颜色
## Swing 鼠标移动事件 ## Swing 鼠标移动事件
...@@ -811,6 +811,6 @@ addMouseMotionListener(new MouseMotionAdapter() { ...@@ -811,6 +811,6 @@ addMouseMotionListener(new MouseMotionAdapter() {
![Mouse move events](img/c673ae592085f4e0c944d2757c1b8e4b.jpg) ![Mouse move events](img/c673ae592085f4e0c944d2757c1b8e4b.jpg)
Figure: Mouse move events 图:鼠标移动事件
在本章中,我们创建了一些简单的 Java Swing 程序。 在本章中,我们创建了一些简单的 Java Swing 程序。
\ No newline at end of file
...@@ -439,7 +439,7 @@ private class MenuItemAction extends AbstractAction { ...@@ -439,7 +439,7 @@ private class MenuItemAction extends AbstractAction {
![Mnemonics and accelerators](img/99b9df0c132595575401d1d8060d2efd.jpg) ![Mnemonics and accelerators](img/99b9df0c132595575401d1d8060d2efd.jpg)
Figure: Mnemonics and accelerators 图:助记符和加速器
带下划线的字符在视觉上提示助记符,加速器的快捷键显示在菜单项标签的旁边。 带下划线的字符在视觉上提示助记符,加速器的快捷键显示在菜单项标签的旁边。
...@@ -795,7 +795,7 @@ menuBar.add(helpMenu); ...@@ -795,7 +795,7 @@ menuBar.add(helpMenu);
![Help menu on the right](img/4d5275fd54a843c01dded2869860f5d7.jpg) ![Help menu on the right](img/4d5275fd54a843c01dded2869860f5d7.jpg)
Figure: Help menu on the right 图:右侧的帮助菜单
## 弹出菜单 ## 弹出菜单
......
...@@ -138,7 +138,7 @@ panel.add(area); ...@@ -138,7 +138,7 @@ panel.add(area);
![FlowLayout](img/33ee8c45078c01c11067553d25a13201.jpg) ![FlowLayout](img/33ee8c45078c01c11067553d25a13201.jpg)
Figure: FlowLayout 图:`FlowLayout`
### `GridLayout` ### `GridLayout`
...@@ -217,7 +217,7 @@ panel.setLayout(new GridLayout(5, 4, 5, 5)); ...@@ -217,7 +217,7 @@ panel.setLayout(new GridLayout(5, 4, 5, 5));
![GridLayout](img/ea702377b65cc449b121ba2d8495a7d0.jpg) ![GridLayout](img/ea702377b65cc449b121ba2d8495a7d0.jpg)
Figure: GridLayout 图:`GridLayout`
### `BorderLayout` ### `BorderLayout`
...@@ -305,7 +305,7 @@ bottomPanel.setBorder(new EmptyBorder(new Insets(20, 20, 20, 20))); ...@@ -305,7 +305,7 @@ bottomPanel.setBorder(new EmptyBorder(new Insets(20, 20, 20, 20)));
![BorderLayout](img/8852943c07dbc6bb0fc18f21564aa792.jpg) ![BorderLayout](img/8852943c07dbc6bb0fc18f21564aa792.jpg)
Figure: BorderLayout 图:`BorderLayout`
下一个示例显示`BorderLayout`管理器的典型用法。 下一个示例显示`BorderLayout`管理器的典型用法。
...@@ -438,7 +438,7 @@ add(statusbar, BorderLayout.SOUTH); ...@@ -438,7 +438,7 @@ add(statusbar, BorderLayout.SOUTH);
![BorderLayout 2](img/3175afae8ce341ab64579f11a64eb808.jpg) ![BorderLayout 2](img/3175afae8ce341ab64579f11a64eb808.jpg)
Figure: BorderLayout 2 图:`BorderLayout` 2
### `CardLayout` ### `CardLayout`
...@@ -608,7 +608,7 @@ add(btnPanel, BorderLayout.SOUTH); ...@@ -608,7 +608,7 @@ add(btnPanel, BorderLayout.SOUTH);
![CardLayout](img/6babf0b7539240d22a98c865c49840b6.jpg) ![CardLayout](img/6babf0b7539240d22a98c865c49840b6.jpg)
Figure: CardLayout 图:`CardLayout`
### `BoxLayout` ### `BoxLayout`
...@@ -695,7 +695,7 @@ public class BoxLayoutButtonsEx extends JFrame { ...@@ -695,7 +695,7 @@ public class BoxLayoutButtonsEx extends JFrame {
![Two buttons](img/76109f86cafa319e10d7a9507e3228f9.jpg) ![Two buttons](img/76109f86cafa319e10d7a9507e3228f9.jpg)
Figure: Two buttons 图:两个按钮
我们创建两个面板。 基本面板具有垂直框布局。 底部面板有一个水平面板。 我们将底板插入底板。 底部面板右对齐。 窗口顶部和底部面板之间的空间是可扩展的。 这是通过垂直胶水实现的。 我们创建两个面板。 基本面板具有垂直框布局。 底部面板有一个水平面板。 我们将底板插入底板。 底部面板右对齐。 窗口顶部和底部面板之间的空间是可扩展的。 这是通过垂直胶水实现的。
...@@ -738,7 +738,7 @@ basePanel.add(Box.createRigidArea(new Dimension(0, 15))); ...@@ -738,7 +738,7 @@ basePanel.add(Box.createRigidArea(new Dimension(0, 15)));
![BoxLayout buttons example](img/cd9bfa7f7f7f66273c013bc4536d8582.jpg) ![BoxLayout buttons example](img/cd9bfa7f7f7f66273c013bc4536d8582.jpg)
Figure: BoxLayout buttons example 图:`BoxLayout`按钮示例
当使用`BoxLayout`管理器时,可以在组件之间设置一个刚性区域。 当使用`BoxLayout`管理器时,可以在组件之间设置一个刚性区域。
...@@ -819,7 +819,7 @@ basePanel.add(new JButton("Button")); ...@@ -819,7 +819,7 @@ basePanel.add(new JButton("Button"));
![Rigid area](img/d57bfcfa90e9f81f916e90c3c4c40146.jpg) ![Rigid area](img/d57bfcfa90e9f81f916e90c3c4c40146.jpg)
Figure: Rigid area 图:`RigidArea`
### 每日提示 ### 每日提示
...@@ -985,7 +985,7 @@ bottomPanel.setMaximumSize(new Dimension(450, 0)); ...@@ -985,7 +985,7 @@ bottomPanel.setMaximumSize(new Dimension(450, 0));
![Tip of the Day](img/afd658ebf0fb8c3dee2a8bc349e6f07f.jpg) ![Tip of the Day](img/afd658ebf0fb8c3dee2a8bc349e6f07f.jpg)
Figure: Tip of the Day 图:当天的提示
## 没有管理器 ## 没有管理器
...@@ -1057,6 +1057,6 @@ okBtn.setBounds(50, 50, 80, 25); ...@@ -1057,6 +1057,6 @@ okBtn.setBounds(50, 50, 80, 25);
![Absolute layout](img/bed54cd752b1202864c447a88697fe22.jpg) ![Absolute layout](img/bed54cd752b1202864c447a88697fe22.jpg)
Figure: Absolute layout 图:绝对布局
在本章中,我们提到了 Swing 中的布局管理。 在本章中,我们提到了 Swing 中的布局管理。
\ No newline at end of file
...@@ -231,6 +231,6 @@ return DefWindowProcW(hwnd, msg, wParam, lParam); ...@@ -231,6 +231,6 @@ return DefWindowProcW(hwnd, msg, wParam, lParam);
![A window](img/267d1e3a0849f69a2e8f3f78473a5baa.jpg) ![A window](img/267d1e3a0849f69a2e8f3f78473a5baa.jpg)
Figure: A window 图:窗口
在 Windows API 教程的这一部分中,我们创建了一个基本窗口。 在 Windows API 教程的这一部分中,我们创建了一个基本窗口。
\ No newline at end of file
...@@ -476,7 +476,7 @@ void RegisterBluePanelClass(void) { ...@@ -476,7 +476,7 @@ void RegisterBluePanelClass(void) {
![More windows](img/6119dc5a43de29b4438745db851a644a.jpg) ![More windows](img/6119dc5a43de29b4438745db851a644a.jpg)
Figure: More windows 图:更多窗口
## 退出键 ## 退出键
...@@ -717,7 +717,7 @@ case WM_MOVE: ...@@ -717,7 +717,7 @@ case WM_MOVE:
![Moving a window](img/48a686b0d5f0ae95ce99b0c2e0ebd29c.jpg) ![Moving a window](img/48a686b0d5f0ae95ce99b0c2e0ebd29c.jpg)
Figure: Moving a window 图:移动窗口
## 闪烁窗口 ## 闪烁窗口
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册