mirror of
https://github.com/ToshioCP/Gtk4-tutorial.git
synced 2025-01-12 20:03:28 +01:00
Minor fix to section 3
Editing for flow and readability.
This commit is contained in:
parent
6880bebac7
commit
7ea62af5d8
1 changed files with 19 additions and 15 deletions
|
@ -42,7 +42,7 @@ The string `pr1.c` is the filename of the C source code above.
|
||||||
$ gcc `pkg-config --cflags gtk4` pr1.c `pkg-config --libs gtk4`
|
$ gcc `pkg-config --cflags gtk4` pr1.c `pkg-config --libs gtk4`
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
The C compiler gcc generates an executable file `a.out`.
|
The C compiler gcc generates an executable file, `a.out`.
|
||||||
Let's run it.
|
Let's run it.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
@ -54,34 +54,38 @@ It should do one of these.
|
||||||
$
|
$
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Oh, just an error message.
|
Oh, it just produces an error message.
|
||||||
But this error message means that the GtkApplication object ran without a doubt.
|
This error message means that the GtkApplication object ran, without a doubt.
|
||||||
Now, think about the message in the next subsection.
|
Now, let's think about what this message means.
|
||||||
|
|
||||||
### signal
|
### signal
|
||||||
|
|
||||||
The message tells us that:
|
The message tells us that:
|
||||||
|
|
||||||
1. The application GtkApplication doesn't implement `g_application_activate()`.
|
1. The application GtkApplication doesn't implement `g_application_activate()`,
|
||||||
2. And it has no handlers connected to the "activate" signal.
|
2. It has no handlers connected to the "activate" signal, and
|
||||||
3. You need to solve at least one of these.
|
3. You will need to solve at least one of these.
|
||||||
|
|
||||||
These two causes of the error are related to signals.
|
These two causes of the error are related to signals.
|
||||||
So, I will explain it to you first.
|
So, I will explain that to you first.
|
||||||
|
|
||||||
Signal is emitted when something happens.
|
A signal is emitted when something happens.
|
||||||
For example, a window is created, a window is destroyed and so on.
|
For example, a window is created, a window is destroyed and so on.
|
||||||
The signal "activate" is emitted when the application is activated.
|
The signal "activate" is emitted when the application is activated, or started.
|
||||||
If the signal is connected to a function, which is called signal handler or simply handler, then the function is invoked when the signal emits.
|
If the signal is connected to a function, which is called a signal handler or
|
||||||
|
simply handler, then the function is invoked when the signal emits.
|
||||||
|
|
||||||
The flow is like this:
|
The flow is like this:
|
||||||
|
|
||||||
1. Something happens.
|
1. Something happens.
|
||||||
2. If it's related to a certain signal, then the signal is emitted.
|
2. If it's related to a certain signal, then the signal is emitted.
|
||||||
3. If the signal is connected to a handler in advance, then the handler is invoked.
|
3. If the signal as been connected to a handler, then the handler is invoked.
|
||||||
|
|
||||||
Signals are defined in objects.
|
Signals are defined in objects.
|
||||||
For example, "activate" signal belongs to GApplication object, which is a parent object of GtkApplication object.
|
For example, the "activate" signal belongs to the GApplication object, which is
|
||||||
GApplication object is a child object of GObject object.
|
a parent object of GtkApplication object.
|
||||||
|
|
||||||
|
The GApplication object is a child object of the GObject object.
|
||||||
GObject is the top object in the hierarchy of all the objects.
|
GObject is the top object in the hierarchy of all the objects.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
@ -90,7 +94,7 @@ GObject -- GApplication -- GtkApplication
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
A child object inherits signals, functions, properties and so on from its parent object.
|
A child object inherits signals, functions, properties and so on from its parent object.
|
||||||
So, Gtkapplication also has the "activate" signal.
|
So, GtkApplication also has the "activate" signal.
|
||||||
|
|
||||||
Now we can solve the problem in `pr1.c`.
|
Now we can solve the problem in `pr1.c`.
|
||||||
We need to connect the "activate" signal to a handler.
|
We need to connect the "activate" signal to a handler.
|
||||||
|
|
Loading…
Reference in a new issue