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`
|
||||
~~~
|
||||
|
||||
The C compiler gcc generates an executable file `a.out`.
|
||||
The C compiler gcc generates an executable file, `a.out`.
|
||||
Let's run it.
|
||||
|
||||
~~~
|
||||
|
@ -54,34 +54,38 @@ It should do one of these.
|
|||
$
|
||||
~~~
|
||||
|
||||
Oh, just an error message.
|
||||
But this error message means that the GtkApplication object ran without a doubt.
|
||||
Now, think about the message in the next subsection.
|
||||
Oh, it just produces an error message.
|
||||
This error message means that the GtkApplication object ran, without a doubt.
|
||||
Now, let's think about what this message means.
|
||||
|
||||
### signal
|
||||
|
||||
The message tells us that:
|
||||
|
||||
1. The application GtkApplication doesn't implement `g_application_activate()`.
|
||||
2. And it has no handlers connected to the "activate" signal.
|
||||
3. You need to solve at least one of these.
|
||||
1. The application GtkApplication doesn't implement `g_application_activate()`,
|
||||
2. It has no handlers connected to the "activate" signal, and
|
||||
3. You will need to solve at least one of these.
|
||||
|
||||
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.
|
||||
The signal "activate" is emitted when the application is activated.
|
||||
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.
|
||||
The signal "activate" is emitted when the application is activated, or started.
|
||||
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:
|
||||
|
||||
1. Something happens.
|
||||
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.
|
||||
For example, "activate" signal belongs to GApplication object, which is a parent object of GtkApplication object.
|
||||
GApplication object is a child object of GObject object.
|
||||
For example, the "activate" signal belongs to the GApplication object, which is
|
||||
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.
|
||||
|
||||
~~~
|
||||
|
@ -90,7 +94,7 @@ GObject -- GApplication -- GtkApplication
|
|||
~~~
|
||||
|
||||
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`.
|
||||
We need to connect the "activate" signal to a handler.
|
||||
|
|
Loading…
Reference in a new issue