Thursday, 1 December 2022

https://ift.tt/gz02jOh

This tutorial will help ypu installing software required to develop desktop Ubuntu applications with C++ language and GTKmm library version 4. You might want to do so following examples of the excellent programs created with GTKmm like Ardour, Inkscape, GParted, Rawtherapee and even VisualBoyAdvance. This is an alternative to programming with C/GTK as we published back in 2018. We will show you how to prepare the tools, write your first program, compile it and repeat it.

Subscribe to UbuntuBuzz Telegram Channel to get article updates.

Info

This tutorial is written using the following specification:

  • OS version: Ubuntu 22.10 Kinetic Kudu
  • G++ version: 12.2 
  • GTK version: 4.0
  • GTKmm version: 4.0
  • Geany version: 1.38 "Sulamar"

 

Install Required Tools

You need to install the following tools:

  • g++
  • gtkmm
  • geany

1) Install g++ compiler:

$ sudo apt-get install g++

2) Install geany integrated development environment (IDE):

$ sudo apt-get install geany 

3) Install gtkmm:

According to Official Documentation, gtkmm version 4 requires several dependencies:

  • sigc++-3.0

  • gtk4

  • glibmm-2.68

  • cairomm-1.16

  • pangomm-2.48

According to the same documentation, one can install gtkmm version 4 with the following Ubuntu command line:

$ sudo apt-get install libgtkmm-4.0-dev

Once installed, you can start programming. 

 

Checking your installation

Command line below will help you verify your installation:

$ dpkg -l | grep -i gtkmm 

If installed properly, your Terminal will show similar result to this picture:


Write Basic Program

According to the documentation again, we can start programming C++/gtkmm with the example source code.

1. Run Geany.

2. Create new file. 

3. Save it as program1.cc in ~/Public/gtkmm/ directory.

4. Copy and paste the following source code.

5. Save file.

A program's source code will look like picture below:

(Geany showing program1.cc file)

 

Compile and Run Code

For your first experience, let's compile the code using Terminal.

1. Run Terminal. 

2. Go to ~/Public/gtkmm/ directory.

3. Check for files available in this directory. It should show program1.cc file.

4. Run command line below:

$ g++ program1.cc -o program1 `pkg-config --cflags --libs gtkmm-4.0` -std=c++17

5. Check for files once again. It should now show a new file named program1 without extension.

6. Run the program:

$ ./program1

7. Program will show as an empty window and a title.

You managed to compile your first program. 

(Terminal showing a process of compilation with the program window showing floating over it saying on its titlebar Basic application, hello from Ubuntu Buzz!)


Explanation:

g++ is your compiler program for C++ language.

program1.cc is your source code file. 

program is the executable file as a result of compilation. Notice that on Ubuntu it does not have extension if you compare it to .exe in windows.

pkg-config is another command line program that is smart enough to help us in many things about compiling C++ code with GTKmm or other libraries.

c++17 is a sign that we deliberately tell the compiler to use the relatively new 2017 standard rather than the older ones.

More explanation can be read on the official documentation. 


Compile and Run Code with Geany

At default configuration, Geany cannot compile, build and run C++/GTKmm source codes correctly. For that purpose, one should configure Geany build commands manually. You can do this following the example above.  

 

Configuration:

1. Run Geany.

2. Open menu Build > Set Build Commands. 

3. Change Compile command from the default to the custom as the following:

Default command:

g++ -Wall -c "%f"

Custom compile command:

g++ -Wall -c "%f" `pkg-config --cflags --libs gtkmm-4.0` -std=c++17

4. Change Build command from the default to the custom below:

Default command:

g++ -Wall -o "%e" "%f"

Custom build command:

g++ -Wall -o "%e" "%f" `pkg-config --cflags --libs gtkmm-4.0` -std=c++17

5. Click OK. Configuration finished.

Picture below shows clearly how you should write the configuration above:

Compiling, building and running:

1. Open program1.cc file.

2. Click Compile button. 


Geany will process it and show compilation command as well as compilation message at the bottom section. It should say "Compilation finished successfully."

3. Click Build button. 


Geany will process it too the same way. It should also say "Compilation finished successfully." 

4. Click Run button.


Geany will launch Terminal to launch the program1 executable file on screen. Your program window should be running now.

And picture below shows the result, that is, an example of conveniently compiling, building, and running program with Geany:

(Geany showing the C++ source code, compilation message at the bottom, and running the resulting program as a new window launched via a Terminal)

To this point, now you will be able to learn single file C++/gtkmm examples. To learn more, see below. 

 

Compiling Program with Multiple Source File

You should be able to compile any gtkmm example programs that consisted of multiple source file each. For example, let's practice with Hello World example from https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/sec-helloworld.html. It consisted of two .cc files and one .h file. We will write the source files using Geany and then compile them all using Terminal. 

1. Run Geany. We will save everything in ~/Public/gtkmm directory again.

2. Copy, paste and save the first source file as helloworld.h

3. Copy, paste and save the second source file as helloworld.cc

4. Copy, paste and save the third source file as main.cc

5. Run Terminal and go to ~/Public/gtkmm directory.

6. Check available files in current directory. You should be able to see helloworld.h, helloworld.cc, and main.cc.

7. Compile the program with command line below:

$ g++ helloworld.cc main.cc -o main `pkg-config --cflags --libs gtkmm-4.0` -std=c++17

8. Compilation process should be finished without error.

Notice that now we call both .cc files before the option -o.

9. Check available files once again. Now you should find a new file named main without extension.

10. Run the program:

$ ./main

You should see the same program as presented in the official documentation. Every time you click the button, a message will be printed on Terminal. See picture below.


First source code:

File: helloworld.h (For use with gtkmm 4)

#ifndef GTKMM_EXAMPLE_HELLOWORLD_H
#define GTKMM_EXAMPLE_HELLOWORLD_H

#include <gtkmm/button.h>
#include <gtkmm/window.h>

class HelloWorld : public Gtk::Window
{

public:
HelloWorld();
~HelloWorld() override;

protected:
//Signal handlers:
void on_button_clicked();

//Member widgets:
Gtk::Button m_button;
};

#endif // GTKMM_EXAMPLE_HELLOWORLD_H

Second source code:

File: helloworld.cc (For use with gtkmm 4)

#include "helloworld.h"
#include <iostream>

HelloWorld::HelloWorld()
: m_button("Hello World") // creates a new button with label "Hello World".
{
// Sets the margin around the button.
m_button.set_margin(10);

// When the button receives the "clicked" signal, it will call the
// on_button_clicked() method defined below.
m_button.signal_clicked().connect(sigc::mem_fun(*this,
&HelloWorld::on_button_clicked));

// This packs the button into the Window (a container).
set_child(m_button);
}

HelloWorld::~HelloWorld()
{
}

void HelloWorld::on_button_clicked()
{
std::cout << "Hello World" << std::endl;
}

Third source code:

File: main.cc (For use with gtkmm 4)

#include "helloworld.h"
#include <gtkmm/application.h>

int main(int argc, char* argv[])
{
auto app = Gtk::Application::create("org.gtkmm.example");

//Shows the window and returns when it is closed.
return app->make_window_and_run<HelloWorld>(argc, argv);
}

 

More Examples

GNOME Project maintains a lot of C++/GTKmm examples for you to study at their website https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/examples. See for example, helloworld, buttons, combobox, and dialogs among others.

 (GNOME websites showing resources and source code examples available for studying)

See Further Reading section for even more examples. 


Setup GTKmm Documentation

Do you know that you can have a full GTKmm documentation included with examples and user guides inside a nice application you can read offline? Yes, that is DevHelp. Let's install the viewer devhelp and the documentation package gtkmm-documentation as the following:

$ sudo apt-get install devhelp gtkmm-documentation

And the result is as the following:

(DevHelp, a nice programming book application that helps you learning gtkmm)


Further Readings

Programming with gtkmm 4

GTKMM Website

GTKmm Tutorial

GTKmm Examples by gammasoft

GTKmm Examples by Prof. Rice



This article is licensed under CC BY-SA 3.0.
Originally posted here: https://ift.tt/HzTcJGh

0 comments:

Post a Comment

ShortNewsWeb

Blog Archive

Categories

'The Woks of Life' Reminded Me to Cook With All the Flavors I Love (1) 10 Scary Podcasts to Listen to in the Dark (1) 13 of the Best Spooky Episodes From (Mostly) Un-Spooky Shows (1) 13 Spooky Movies Set on Halloween Night (1) 16 of the Best Ways to Declutter Your Home (1) 1Password Now Generates QR Codes to Share Wifi Passwords (1) 2024 (15) 21 Thanksgiving Movies About Families As Screwed-Up As Yours (1) 30 Movies and TV Shows That Are Basically 'Competence Porn' (1) 30 of the Most Obscenely Patriotic Movies Ever (1) 31 Spooky Movies to Watch Throughout October (1) 38 of the Best Queer Movies of the Past 100 Years (1) 40 Netflix Original Series You Should Watch (1) 55 Box Office Bombs Totally Worth Watching (1) Active Directory (1) Adobe's AI Video Generator Might Be as Good as OpenAI's (1) AIX (1) and I'd Do It Again (1) and It's Not Worth the Price Hike (1) and Max Bundle Isn't a Terrible Deal (1) and the Dreo Solaris Is the Best Space Heater I’ve Tried (1) and These Are My Favorite Tech Deals From Walmart’s Black Friday Sale (1) and These Water-Resistant Running Shoes Are a Game Changer (1) and They're All on Sale for Black Friday (1) Apache (2) Apple Intelligence Is Running Late (1) Apple Intelligence's Instructions Reveal How Apple Is Directing Its New AI (1) Apple Passwords Is Now on Firefox (but Not for Windows Users) (1) Apple's Latest Update Might Have Opted You Back Into Apple Intelligence (1) August 18 (1) August 4 (1) August 5 (1) Avoid an Allergic Reaction by Testing Your Halloween Makeup Now (1) Backup & Restore (2) best practices (1) bleepingcomputer (107) Blink Security Cameras Are up to 68% Off Ahead of Prime Day (1) Bluesky Has Trending Topics Now (But You Can Disable Them) (1) CentOS (1) CES 2025: Asus' Zenbook A14 Is the Lightweight Laptop My Back Wishes I Had (1) CES 2025: Govee’s New Pixel Light Will Remind You of a Lite Brite (1) Configure PowerPath on Solaris (1) Congress Might Ban DeepSeek (1) Documents (2) Don't Fall for This 'New' Google AI Scam (1) Don't Rely on a 'Monte Carlo' Retirement Analysis (1) Eight Cleaning Products TikTok Absolutely Loves (1) Eight of the Best Methods for Studying so You Actually Retain the Information (1) Eight Unexpected Ways a Restaurant Can Mislead You (1) Elevate Your Boring Store-Bought Pretzels With This Simple Seasoning Technique (1) Even Steam Has Malware Now (1) Everything Announced at Apple's iPhone 16 Event (1) Everything I'm Seeding in February (1) file system (6) Finally (1) Find (1) Find a Nearby ‘Gleaning Market’ to Save Money on Groceries (1) Five Red Flags to Look for in Any Restaurant (1) Five Ways You Can Lose Your Social Security Benefits (1) Flappy Bird's Creator Has Nothing to Do With Its 'Remake' (1) Four Reasons to Walk Out of a Job Interview (1) Four Signs Thieves Are Casing Your House (1) gaming (1) Goldfish Crackers Have a New Name (for a Little While) (1) Grok Is Now Available Without an X Account (1) Hackers Now Have Access to 10 Billion Stolen Passwords (1) How I Finally Organized My Closet With a Digital Inventory System (1) How I Pack Up a Hotel Room So I Don’t Forget Anything (1) How Opening Multiple Bank Accounts Helped Me Manage My Money Better (1) How to Buy Residency in Another Country With a 'Golden Visa' (1) How to Cancel Your Amazon Prime Membership After Prime Day Is Over (1) How to Choose the Best Weightlifting Straps for Your Workout (1) How to Do Fartlek Runs (and Seven Different Kinds to Try) (1) How to Enable (and Turn Off) Apple Intelligence on an iPhone (1) How to Get Free Car Maintenance and Repair Work (1) How to Get Started With Bluesky (1) How to Keep Squirrels Off Your Bird Feeders (1) How to Mute Words and Phrases on Your Bluesky Feed (1) How to Protect Your Kids From Identity Theft (1) How to Remotely Control Another iPhone or Mac Using FaceTime (1) How to Set Up Your Bedroom Like a Hotel Room (and Why You Should) (1) How to Speak With a Real Person at Target Customer Service (1) How to Take a Screenshot on a Mac (1) How to Take Full Control of Your Notifications on a Chromebook (1) How to Track Your 2024 Federal Tax Refund (1) How to Use Picture-in-Picture Mode on an Android Phone (1) How to Write SMART Goals That Actually Help You Reach Your Fitness Dreams (1) Hulu (1) I Chose the Beats Fit Pro Over the AirPods Pro (1) I Tested Grok 3 (1) I'd Recommend These Seven Outdoor Security Cameras I've Tested (1) I'm a Runner (1) I'm a Shopping Writer (1) I’m Always Cold (1) If You Got a Package You Didn't Order (1) If You Hate Running (1) Important Questions (17) Install and Configure PowerPath (1) interview questions for linux (2) Is ‘Ultra-Processed’ Food Really That Bad for You? (1) Is Amazon Prime Really Worth It? (1) It Might Be a Scam (1) July 14 (1) July 21 (1) July 28 (1) July 7 (1) June 30 (1) LifeHacker (204) Linux (36) Make and Freeze Some Roux Now for Easy Turkey Gravy (1) Meredith's Training Diaries: How I Crushed My Marathon Personal Record (1) Meta Releases Largest Open-Source AI Model Yet (1) Monitoring (3) music (688) My Favorite 14TB Hard Drive Is 25% Off Right Now (1) My Favorite Amazon Deal of the Day: Apple AirPods Max (2) My Favorite Amazon Deal of the Day: Apple Pencil Pro (1) My Favorite Amazon Deal of the Day: Google Nest Mesh WiFi Router (1) My Favorite Amazon Deal of the Day: Google Pixel 8 (1) My Favorite Amazon Deal of the Day: PlayStation 5 (1) My Favorite Amazon Deal of the Day: Samsung Odyssey G9 Gaming Monitor (1) My Favorite Amazon Deal of the Day: SHOKZ OpenMove Bone Conduction Headphones (1) My Favorite Amazon Deal of the Day: The 13-Inch M3 Apple MacBook Air (1) My Favorite Amazon Deal of the Day: The Beats Pill Portable Speaker (1) My Favorite Amazon Deal of the Day: The Garmin Forerunner 955 (1) My Favorite Amazon Deal of the Day: The Garmin Venu 3S (1) My Favorite Amazon Deal of the Day: The Google Pixel 9 Pro (1) My Favorite Amazon Deal of the Day: The Kindle Colorsoft Signature Edition (1) My Favorite Amazon Deal of the Day: The Microsoft Surface Pro (1) My Favorite Amazon Deal of the Day: The Samsung Galaxy Buds 3 Pro (1) My Favorite Amazon Deal of the Day: The Sonos Era 100 (1) My Favorite Amazon Deal of the Day: These Bose QuietComfort Headphones (1) My Favorite Tools for Managing Cords and Cables (1) Nagios (2) Newtorking (1) NFS (1) OMG! Ubuntu! (688) OpenAI Just Introduced More Ways to Use ChatGPT on WhatsApp (1) Opera’s New Browser Is Built to Break Your Doomscrolling Habit (1) Oracle Linux (1) oracleasm (3) osnews (34) Password less communication (1) Patching (2) Pixel Studio Is the Easiest (If Not the Best) Way to Make AI Art on Your Pixel 9 (1) Poaching Is the Secret to Perfect Corn on the Cob (1) powerpath (1) Prioritize Your To-Do List By Imagining Rocks in a Jar (1) Red Hat Exam (1) register (120) Rsync (1) Safari’s ‘Distraction Control’ Will Help You Banish (Some) Pop Ups (1) Samba (1) Samsung Just Announced the Galaxy S25 Series (1) Save Time and Air Fry Your Pumpkin Pie (1) Scrcpy (1) September 1 (1) September 15 (1) September 2 (1) September 22 (1) September 23 (1) September 30 (1) September 8 (1) Seven Home 'Upgrades' That Aren’t Worth the Money (1) Seven Things Your Credit Card’s Trip Protection Won’t Actually Cover (1) Six Unexpected Household Uses for Dry-Erase Markers (1) ssh (1) Stop Your iPhone From Sharing Photos' Data With Apple (1) Swift Shift Is the Window Management Tool Apple Should Have Built (1) System hardening (1) Tailor Your iPhone's Fitness Summary to Your Workouts (1) Target’s ‘Circle Week’ Sale Is Still Going After October Prime Day (1) Target’s Answer to Prime Day Starts July 7 (1) Tech (9576) Tech CENTRAL (42) Technical stories (189) technpina (12) The 30 Best Movies of the 2020s so Far (and Where to Watch Them) (1) The 30 Best Sports Movies You Can Stream Right Now (1) The Beats Solo 4 Are 50% Off Right Now (1) The Best Deals on Robot Vacuums for Amazon’s Early Prime Day Sale (2) The Best Deals on Ryobi Tools During Home Depot's Labor Day Sale (1) The Best Early Prime Day Sales on Power Tools (1) The Best Last-Minute Valentine's Day Gift Ideas for Under $30 (1) The Best Movies and TV Shows to Watch on Netflix This Month (1) The Best October Prime Day Deals If You Are Experiencing Overwhelming Existential Dread (1) The Best Places to Go When You Don't Want to Be Around Kids (1) The Best Places to Order Thanksgiving Dinner to Go (1) The Best Strategies for Lowering Your Credit Card Interest Rate (1) The Best Way to Clean a Microwave (1) The Best Ways to Store All Your Bags and Purses (1) The Boox Note Air 4C Is a Color E-Reader and Digital Notebook in One (1) The Latest watchOS Beta Is Breaking Apple Watches (1) The Marshall Emberton II Speakers Are $70 Off for Black Friday (1) The New Disney+ (1) The PowerSchool Breach May Have Compromised Over 70 Million Users' Data (1) The Real Cost of Using a Nespresso Machine (1) The Samsung Galaxy Buds 3 Pro Are $60 Off for Black Friday (1) The Two Best Times of Year to Look for a New Job (1) the X Rival Everyone's Flocking To (1) There's a Fix for Apple Mail's Weird Archiving Behavior (1) These Anker Soundcore Sport X10 Earbuds Are Cheaper Than Ever (1) These Bissell Vacuums Are on Sale Ahead of Black Friday (and They're All Great) (1) These Meatball Shots Are My Favorite Football Season Snack (1) These Milwaukee Tools Are up to 69% off Right Now (1) This 2024 Sony Bravia Mini-LED TV Is $400 Off Right Now (1) This 75-Inch Hisense ULED 4K TV Is $500 Off Right Now (1) This App Lets You Create Automations Your Mac Usually Doesn’t Support (1) This Google Nest Pro Is 30% Off for Prime Day (1) This iPhone and Mac App Lets You Edit Your Bluesky Posts (1) This MagSafe-Compatible Power Bank Is 40% Off for Black Friday (1) This Peanut Butter Latte Isn’t As Weird As It Sounds (1) This Safari Extension Gives You More Control Over Your Reddit Feed (1) This Tech Brand Will Get the Biggest Discounts During Prime Day (1) This TikTok Upholstery Cleaning Hack Actually Works (1) Three Quick Ways to Shorten a Necklace (1) Three Services People Don't Know They Can Get From Their Bank for Free (1) TikTok's '5x5' Cleaning Method Is Great If You're Short on Time (1) Today’s Wordle Hints (and Answer) for Monday (4) Today’s Wordle Hints (and Answer) for Sunday (11) Try 'Pile Cleaning' When Your Mess Is Overwhelming (1) Try 'Pomodoro 2.0' to Focus on Deep Work (1) Try 'Rucking' (1) Ubuntu News (352) Ubuntu! (1) Unix (1) Use the ‘Organizational Triangle’ to Keep Your House Neater (1) Use This App to Sync Apple Reminders With Your iPhone Calendar (1) Use This Extension to Find All Your X Followers on Bluesky (1) veritas (2) Videos (1) Warner Bros. Is Uploading Classic Movies to YouTube for Free (1) Was ChatGPT Really Starting Conversations With Users? (1) Watch Out for These Red Flags in a Realtor Contract (1) Wayfair Is Having a '72-Hour Closeout' Sale to Compete With Prime Day (1) We Now Know When Google Will Roll Out Android 15 (1) What Is the 'Die With Zero' Movement (and Is It Right for You)? (1) What Not to Do When Training for a Marathon (1) What to Do When Your Employer Shifts Your Pay From Salary to Hourly (1) What to Look for (and Avoid) When Selecting a Pumpkin (1) What to Wear to Run in the Cold (1) What's New on Max in December 2024 (1) What's New on Netflix in March 2025 (1) What's New on Prime Video and Freevee in September 2024 (1) Where to Stream Every Nominated Movie Before the 2025 Oscars (1) Why the Apple TV App Is Better on Android Than iPhone (1) Why You Can't Subscribe to Disney+ and Hulu Through Apple Anymore (1) Why Your Home Gym Needs Adjustable Kettlebells (1) Windows (5) You Can Easily Add Words to Your Mac's Dictionary (1) You Can Fight (and Avoid) Your Landlord's Cleaning Fees (1) You Can Get 'World War Z' on Sale for $19 Right Now (1) You Can Get a Membership to BJ's for Practically Free Right Now (1) You Can Get Beats Studio Buds+ on Sale for $100 Right Now (1) You Can Get Microsoft Visio 2021 Pro on Sale for $20 Right Now (1) You Can Get This 12-Port USB-C Hub on Sale for $90 Right Now (1) You Can Get This Roomba E5 Robot Vacuum on Sale for $170 Right Now (1) You Can Hire Your Own Personal HR Department (1) You Can Search Through Your ChatGPT Conversation History Now (1) You Can Set Different Scrolling Directions for Your Mac’s Mouse and Trackpad (1) You Need Beneficiaries for More Accounts Than You Think (1) Your DeepSeek Chats May Have Been Exposed Online (1) Your Verizon Bill Just Got a Little More Expensive (1)

Recent Comments

Popular Posts

Translate

My Blog List

Popular

System Admin Share

Total Pageviews