STICKY: Contents - Programming GTK GUIs using gtkIOStream
gtkIOStream is a set of C++ headers which enable you to make GTK GUI programs in a very trivial manner.
The nice thing about gtkIOStream is that they are only header files, this makes distribution easier, as you don't need to link against foreign libraries. As headers are inlined by the preprocessor, gtkiostream generates standard GTK C code at compile time. It is not strictly a C++ implementation of GTK, more a set of 'wrappers' around standard GTK C code which trivialises the generation of GTK GUIs. Because of inlining, the code resolves down to standard GTK C code by the preprocessor.
The following is the contents of the tutorials posted to the forums.
Tutorial 0 : Sets up prerequisites and introduces/tests that your compile system works.
Tutorial 1 : Explains the main program and shows you how to get an empty dialog up on the screen.
Tutorial 2 : Shows you how to load your first GUI widget into a GtkInterface dialog.
Tutorial 3 : Began to explain "packing" which is the way to layout your widgets in a desired manner in your dialog.
Tutorial 4 : Demonstrates how to layout widgets using a combination of horizontal and vertical packing boxes.
Tutorial 5 : Explains how to create buttons and callback functions. It implements the quit button to exit the gtk_main function.
Tutorial 6 : Demonstrates how to create GUI C++ classes, how to inherit and use of other GUI objects, and how to handle callbacks in C++ classes.
Hope that you get a lot out of these tutorials and you understand GTK GUI programming well from these tutorials.
Matt
The nice thing about gtkIOStream is that they are only header files, this makes distribution easier, as you don't need to link against foreign libraries. As headers are inlined by the preprocessor, gtkiostream generates standard GTK C code at compile time. It is not strictly a C++ implementation of GTK, more a set of 'wrappers' around standard GTK C code which trivialises the generation of GTK GUIs. Because of inlining, the code resolves down to standard GTK C code by the preprocessor.
The following is the contents of the tutorials posted to the forums.
Tutorial 0 : Sets up prerequisites and introduces/tests that your compile system works.
Tutorial 1 : Explains the main program and shows you how to get an empty dialog up on the screen.
Tutorial 2 : Shows you how to load your first GUI widget into a GtkInterface dialog.
Tutorial 3 : Began to explain "packing" which is the way to layout your widgets in a desired manner in your dialog.
Tutorial 4 : Demonstrates how to layout widgets using a combination of horizontal and vertical packing boxes.
Tutorial 5 : Explains how to create buttons and callback functions. It implements the quit button to exit the gtk_main function.
Tutorial 6 : Demonstrates how to create GUI C++ classes, how to inherit and use of other GUI objects, and how to handle callbacks in C++ classes.
Hope that you get a lot out of these tutorials and you understand GTK GUI programming well from these tutorials.
Matt
Discuss hearing, acoustics, audio injector products, - https://lists.audioinjector.net/mailman/listinfo/people
Sound card for the Raspberry Pi with inbuilt microphone : www.audioinjector.net
Audio Inector Octo multitrack GPIO sound card
Sound card for the Raspberry Pi with inbuilt microphone : www.audioinjector.net
Audio Inector Octo multitrack GPIO sound card
Return to "Graphics programming"
Jump to
- Community
- General discussion
- Announcements
- Other languages
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Türkçe
- User groups and events
- Raspberry Pi Official Magazine
- Using the Raspberry Pi
- Beginners
- Troubleshooting
- Advanced users
- Assistive technology and accessibility
- Education
- Picademy
- Teaching and learning resources
- Staffroom, classroom and projects
- Astro Pi
- Mathematica
- High Altitude Balloon
- Weather station
- Programming
- C/C++
- Java
- Python
- Scratch
- Other programming languages
- Windows 10 for IoT
- Wolfram Language
- Bare metal, Assembly language
- Graphics programming
- OpenGLES
- OpenVG
- OpenMAX
- General programming discussion
- Projects
- Networking and servers
- Automation, sensing and robotics
- Graphics, sound and multimedia
- Other projects
- Media centres
- Gaming
- AIY Projects
- Hardware and peripherals
- Camera board
- Compute Module
- Official Display
- HATs and other add-ons
- Device Tree
- Interfacing (DSI, CSI, I2C, etc.)
- Keyboard computers (400, 500, 500+)
- Raspberry Pi Pico
- General
- SDK
- MicroPython
- Other RP2040 boards
- Zephyr
- Rust
- AI Accelerator
- AI Camera - IMX500
- Hailo
- Software
- Raspberry Pi OS
- Raspberry Pi Connect
- Raspberry Pi Desktop for PC and Mac
- Beta testing
- Other
- Android
- Debian
- FreeBSD
- Gentoo
- Linux Kernel
- NetBSD
- openSUSE
- Plan 9
- Puppy
- Arch
- Pidora / Fedora
- RISCOS
- Ubuntu
- Ye Olde Pi Shoppe
- For sale
- Wanted
- Off topic
- Off topic discussion