0%

​ 大多数时候,事件驱动的GUI程序可以给你造成一个很好的假象:多个任务在同时的运行这是因为,重绘窗口通常只占用很少的时间,用户输入也被很快的进行了处理.然后,有时候,有些任务很难将其分割成足够小的让人难以察觉的小块来运行,这时候就要使用多线程编程了,本章我们来介绍一下在wxWidgets中怎样实现多线程编程在本章的最后,我们将介绍一下多线程编程的一些替代解决方案..

1.使用wxThread

如果你要在你的代码中使用线程,首先要实现一个wxThread的派生类,并且至少要重载其虚函数Entry,这个函数包含了线程要做的主要的事情举例来说,比如我们要用一个单独的线程来计算图片中颜色的数目,下面是我们的派生类的声明:

1
2
3
4
5
6
7
8
9
10
11
12
class MyThread : public wxThread 
{
public:
MyThread(wxImage∗ image, int∗ count):
m image(image), m count(count) {}
virtual voidEntry(); 、
private :
wxImage∗ m image;
int∗ m count;
};
//一个标识符用来在线程工作完成的时候通知应用程序
#define ID_COUNTED_COLORS_100

Entry函数用来进行计算工作并且返回一个返回值(对于联合线程(即将介绍),Wait函数将返回这个值),下面是我们的Entry函数:

1
2
3
4
5
void ∗MyThread::Entry() {
(∗ m count) = m image−>CountColours();
// . wxCommandEvent event(wxEVT COMMAND MENU SELECTED, ID COUNTED COLORS);
wxGetApp().AddPendingEvent(event); return NULL;
}

1.几何形体的意义

几何形体其实是一种思维方式,思考能力,有这种意识其实几何并不一定要练习

image-20200129144527247

真正要思考的是如何把物体归纳为几何形体的能力,这才是练习几何形体的意义所在,其练习意义并不在于正方形和长方形的本身

阅读全文 »

​ 之前就喜欢胡思乱写一些东西,记笔记也是常态,从大四开始因为要准备考研就没有摸过画板了,之后放假半年再摸起画笔找状态说实话也费了不少时间,而且在K大那里学的东西基本忘的差不多了,又看到家里的旧电脑上残留有之前上透视课的画作业,还有聊天记录和一些自己无聊的时候思考的笔记,想了想就整理在这里,再抄一下K大微博发的课堂笔记和同学的心得再过一遍,也算是重新学习了一遍。

第一堂:房子临摹(透视比例与结构) perspective, proportion and structure

作业1:临摹

image-20200128223330037

阅读全文 »

​ 说来奇怪,今天翻到了高中时候的读书笔记,自从上了大学倒没有记笔记的习惯了,这里暂且写一下占个地方也好,就当回忆一下黑历史了(笑)。

1.谈小说的作用

六经不能教,当以小说教之;正史不能入,当以小说入之。

语录不能渝,当以小说渝之;律例不能活,当以小说活之。

​ ——(小说的作用,市民文学现状)

1.WxApp

每一个wxWidgets程序都需要定义一个wxApp类的子类,并且需要创建并且只能创建一个这个类的实例,

实例控制着整个程序的执行,这个继承自wxApp的子类至少需要定义一个OnInit函数,

当运行代码的时候,将会调用这个函数(和一个典型的Win32程序中的main函数或者WinMain函数类似)。

1.wxApp类

定义这个子类及其OnInit函数的代码如下所示:

1
2
3
4
5
class MyApp : public wxApp
{
public:
virtual bool OnInit();//相当于Main函数 函数入口
};

在这个Onlnit函数中,通常应该作的事情包括:

阅读全文 »