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

2020-06-22 10:06:19

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