GTK/Development
- -Write a simple message dialog app
-You can write your own GTK message dialog easily in many programming languages through GObject-Introspection or bindings, or you can simply use bash. -
-The following examples display a simple "Hello world" in a message dialog. -
-Ada
--
-
- Dependency: gtkadaAUR - -
- Makedependency: gcc-ada - -
- Build with:
gnatmake hello_world `gtkada-config`
-
-
hello_world.adb-
with Gtk.Main; -with Gtk.Dialog; use Gtk.Dialog; -with Gtk.Message_Dialog; use Gtk.Message_Dialog; - -procedure hello_world is - Dialog : Gtk_Message_Dialog; - Response : Gtk_Response_Type; -begin - Gtk.Main.Init; - Gtk_New (Dialog => Dialog, - Parent => null, - Flags => 0, - The_Type => Message_Info, - Buttons => Buttons_OK, - Message => "Hello world!"); - Format_Secondary_Markup (Dialog, "This is an example dialog."); - Response := Run (Dialog); -end hello_world;-
Bash
-- Dependency: zenity -
hello_world.sh-
#!/bin/bash -zenity --info --title='Hello world!' --text='This is an example dialog.'-
BASIC
--
-
- Dependency: gtk3 - -
- Makedependency: freebasic-gnomeheadersAUR[broken link: package not found] - -
- Build with:
fbc hello_world.bas
-
-
hello_world.bas-
#include "Gir/Gtk-3.0.bi" -Dim As GtkWidget Ptr hello -gtk_init (cast(gint ptr, @__fb_argc__), @__fb_argv__) -hello = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Hello world!") -gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (hello), "This is an example dialog.") -gtk_dialog_run (GTK_DIALOG (hello))-
Boo
--
-
- Dependency: gtk-sharp-3 (and booAUR[broken link: package not found]) -
- Makedependency: booAUR[broken link: package not found] - -
- Build with:
booc hello_world.boo
-
- - Run with:
mono hello_world.exe
(orbooi hello_world.boo
)
-
hello_world.boo-
import Gtk from "gtk-sharp" -Application.Init() -Hello = MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Hello world!") -Hello.SecondaryText = "This is an example dialog." -Hello.Run()-
C
--
-
- Dependency: gtk4 - -
- Build with:
gcc -o hello_world $(pkg-config --cflags --libs gtk4) hello_world.c
-
-
hello_world.c-
#include <gtk/gtk.h> - -static void activate (GtkApplication *app, gpointer user_data) { - GtkWidget *dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Hello world!"); - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "This is an example dialog."); - gtk_window_set_application (GTK_WINDOW (dialog), app); - g_signal_connect (dialog, "response", G_CALLBACK (gtk_window_destroy), dialog); - gtk_window_present (GTK_WINDOW (dialog)); -} - -int main (int argc, char **argv) { - GtkApplication *app = gtk_application_new (NULL, G_APPLICATION_DEFAULT_FLAGS); - g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); - return g_application_run (G_APPLICATION (app), argc, argv); -}-
-
-
- Dependency: gtk3 - -
- Build with:
gcc -o hello_world $(pkg-config --cflags --libs gtk+-3.0) hello_world.c
-
-
hello_world.c-
#include <gtk/gtk.h> - -int main (int argc, char *argv[]) { - gtk_init (&argc, &argv); - GtkWidget *dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "dialog world!"); - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "This is an example dialog."); - gtk_dialog_run(GTK_DIALOG (dialog)); - return 0; -}-
-C++ -
--
-
- Dependency: gtkmm-4.0 - -
- Build with:
g++ -o hello_world $(pkg-config --cflags --libs gtkmm-4.0) hello_world.cc
-
-
hello_world.cc-
#include <gtkmm.h> - -class MyDialog : public Gtk::MessageDialog { - public: - MyDialog() : MessageDialog("Hello world!", false, Gtk::MessageType::INFO, Gtk::ButtonsType::OK, false) { - set_secondary_text("This is an example dialog."); - signal_response().connect(sigc::hide(sigc::mem_fun(*this, &Gtk::Window::destroy))); - }; -}; - -int main(int argc, char* argv[]) { - auto app = Gtk::Application::create(); - return app->make_window_and_run<MyDialog>(argc, argv); -}-
-
-
- Dependency: gtkmm3 - -
- Build with:
g++ -o hello_world $(pkg-config --cflags --libs gtkmm-3.0) hello_world.cc
-
-
hello_world.cc-
#include <gtkmm/main.h> -#include <gtkmm/messagedialog.h> -int main(int argc, char *argv[]) { - Gtk::Main kit(argc, argv); - Gtk::MessageDialog Hello("Hello world!", false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK); - Hello.set_secondary_text("This is an example dialog."); - Hello.run(); - return 0; -}-
See also: -
- --C# -
-.NET
--
-
- Dependencies: dotnet-runtime, gtk3 - -
- Makedependency: dotnet-sdk - -
- Build with:
dotnet build
-
- - Run with:
bin/Debug/net7.0/HelloWorld
(ordotnet run
)
-
HelloWorld.csproj-
<Project Sdk="Microsoft.NET.Sdk"> - <PropertyGroup> - <OutputType>Exe</OutputType> - <TargetFramework>net7.0</TargetFramework> - </PropertyGroup> - <ItemGroup> - <PackageReference Include="GtkSharp" Version="3.24.24.38" /> - </ItemGroup> -</Project>-
HelloWorld.cs-
using Gtk; -public class HelloWorld { - static void Main() { - Application.Init (); - MessageDialog Hello = new MessageDialog (null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Hello world!"); - Hello.SecondaryText="This is an example dialog."; - Hello.Run (); - } -}-
Mono
--
-
- Dependency: gtk-sharp-3 - -
- Build with:
mcs -pkg:gtk-sharp-3.0 hello_world.cs
-
- - Run with:
mono hello_world.exe
-
-
hello_world.cs-
using Gtk; -public class HelloWorld { - static void Main() { - Application.Init (); - MessageDialog Hello = new MessageDialog (null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Hello world!"); - Hello.SecondaryText="This is an example dialog."; - Hello.Run (); - } -}-
Clojure
--
-
- Dependencies: java-gnomeAUR, leiningen - -
- Run with:
lein run
-
-
project.clj-
(defproject hello-world "0.1.0-SNAPSHOT" - :main hello-world.core - :dependencies [[org.clojure/clojure "1.10.3"]] - :resource-paths ["/usr/share/java/gtk.jar"]) --
src/hello_world/core.clj-
(ns hello-world.core - (:import [org.gnome.gtk Gtk InfoMessageDialog])) - -(defonce gtk-init (Gtk/init (make-array String 0))) - -(defn -main [] - (doto (InfoMessageDialog. nil "Hello world!" "This is an example dialog.").run))-
Crystal
--
-
- Dependency: gtk3 - -
- Makedependencies: crystal, crystal-gobject - -
- Build with:
crystal build hello_world.cr
-
-
hello_world.cr-
require "gobject/gtk/autorun" - -dialog = Gtk::MessageDialog.new text: "Hello world!", message_type: :info, buttons: :ok, secondary_text: "This is an example dialog." -dialog.on_response do - Gtk.main_quit -end -dialog.show-
D
--
-
- Dependency: gtkd - -
- Makedependency: ldc - -
- Build with:
ldc hello_world $(pkg-config --cflags --libs gtkd-3)
-
-
hello_world.d-
import gtk.Main; -import gtk.MessageDialog; - -void main(string[] args) -{ - Main.init(args); - MessageDialog dialog = new MessageDialog(null, GtkDialogFlags.MODAL, MessageType.INFO, ButtonsType.OK, "Hello world!"); - dialog.run(); -}-
-F# -
--
-
- Dependency: dotnet-sdk - -
- Run with:
dotnet fsi hello_world.fsx
-
-
hello_world.fsx-
#r "nuget: GtkSharp" -open Gtk - -let main () = - Application.Init() - let Hello = new MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Hello world!") - Hello.SecondaryText <- "This is an example dialog." - Hello.Run() |> ignore - -main () --
Fortran
--
-
- Dependency: gtk-3-fortran-gitAUR - -
- Makedependency: gcc-fortran - -
- Build with:
gfortran -o hello_world $(pkg-config --cflags --libs gtk-3-fortran) hello_world.f90
-
-
hello_world.f90-
program hello_world - use gtk_hl - use gtk, only: gtk_init - - integer(c_int) :: resp - character(40), dimension(2) :: msg - - call gtk_init() - msg(1) ="Hello world!" - msg(2) = "This is an example dialog." - resp = hl_gtk_message_dialog_show(msg, GTK_BUTTONS_OK, type=GTK_MESSAGE_INFO) -end program hello_world --
Genie
- -hello_world.gs-
class Application - application: Gtk.Application - dialog: Gtk.MessageDialog - - construct () - application = new Gtk.Application (null, GLib.ApplicationFlags.DEFAULT_FLAGS) - application.activate.connect (on_activate) - application.run () - - def on_activate () - dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!") - dialog.application = application - dialog.format_secondary_text ("This is an example dialog.") - dialog.response.connect (on_response) - dialog.present () - - def on_response () - dialog.destroy () - -init - new Application- -
hello_world.gs-
init - Gtk.init (ref args) - var dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!") - dialog.format_secondary_text ("This is an example dialog.") - dialog.run ()-
Go
--
-
- Dependency: gtk3 - -
- Makedependency: gotk3-gitAUR or
go get github.com/gotk3/gotk3/gtk
-
- - Build with:
go build hello_world.go
-
- - (Or run with:
go run hello_world.go
)
-
hello_world.go-
package main -import ("github.com/gotk3/gotk3/gtk") - -func main() { - gtk.Init(nil) - dialog := gtk.MessageDialogNew(nil, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "Hello world!") - dialog.FormatSecondaryText("This is an example notification.") - dialog.Run() -}-
Groovy
--
-
- Dependencies: groovy, java-gnomeAUR - -
- Build with:
groovyc -cp /usr/share/java/gtk.jar HelloWorld.groovy && jar cfe HelloWorld.jar HelloWorld HelloWorld.class
-
- - Run with:
java -cp /usr/share/groovy/embeddable/groovy-all.jar:/usr/share/java/gtk.jar:HelloWorld.jar HelloWorld
orgroovy -cp /usr/share/java/gtk.jar HelloWorld.groovy
-
-
HelloWorld.groovy-
import org.gnome.gtk.* -Gtk.init() -def Hello = new InfoMessageDialog(null, "Hello world!", "This is an example dialog.") -Hello.run()-
Haskell
--
-
- Dependency: haskell-gi-gtk - -
- Makedependency: ghc - -
- Build with:
ghc -dynamic hello_world
-
-
hello_world.hs-
{-# LANGUAGE OverloadedStrings, OverloadedLabels, ImplicitParams #-} -import Control.Monad (void) -import qualified GI.Gtk as Gtk -import Data.GI.Base - -activate app = do - dialog <- new Gtk.MessageDialog [ #application := app, - #buttons := Gtk.ButtonsTypeOk, - #title := "Hello world!", - #text := "This is an example dialog.", - #messageType := Gtk.MessageTypeInfo ] - on dialog #response $ \_ -> #destroy dialog - #show dialog - -main = do - app <- new Gtk.Application [On #activate (activate ?self)] - #run app Nothing-
-
-
- Dependency: haskell-gi-gtk3 - -
- Makedependency: ghc - -
- Build with:
ghc -dynamic hello_world
-
-
hello_world.hs-
{-# LANGUAGE OverloadedStrings, OverloadedLabels, ImplicitParams #-} -import Control.Monad (void) -import qualified GI.Gtk as Gtk -import Data.GI.Base - -main = do - _ <- Gtk.init Nothing - dialog <- new Gtk.MessageDialog [ #buttons := Gtk.ButtonsTypeOk, - #title := "Hello world!", - #text := "This is an example dialog.", - #messageType := Gtk.MessageTypeInfo ] - #run dialog-
-
-
- Dependency: haskell-gtk3 - -
- Makedependency: ghc - -
- Build with:
ghc -dynamic hello_world
-
-
hello_world.hs-
import Graphics.UI.Gtk -main = do - initGUI - dialog <- messageDialogNew Nothing [DialogModal] MessageInfo ButtonsOk "Hello world!" - messageDialogSetSecondaryText dialog "This is an example dialog." - _res <- dialogRun dialog - return 0-
IronPython
--
-
- Dependencies: gtk-sharp-3, ironpythonAUR - -
- Run with:
ipy hello_world.py
-
-
hello_world.py-
import clr -clr.AddReference('gtk-sharp') -import Gtk -Gtk.Application.Init() -Hello = Gtk.MessageDialog (None, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "Hello world!") -Hello.SecondaryText="This is an example dialog." -Hello.Run()-
Java
--
-
- Dependency: java-gnomeAUR - -
- Makedependency: java-environment -
- Build with:
javac -cp /usr/share/java/gtk.jar HelloWorld.java && jar cfe HelloWorld.jar HelloWorld HelloWorld.class
-
- - Run with:
java -cp /usr/share/java/gtk.jar:HelloWorld.jar HelloWorld
-
-
HelloWorld.java-
import org.gnome.gtk.Gtk; -import org.gnome.gtk.Dialog; -import org.gnome.gtk.InfoMessageDialog; - -public class HelloWorld { - public static void main(String[] args) { - Gtk.init(args); - Dialog Hello = new InfoMessageDialog(null, "Hello world!", "This is an example dialog."); - Hello.run(); - } -}-
JavaScript
-GJS
- -hello_world.js-
#!/usr/bin/env -S gjs -m -import Gtk from 'gi://Gtk?version=4.0' - -const application = new Gtk.Application() - -application.connect("activate", () => { - const dialog = new Gtk.MessageDialog({ - application, - message_type: Gtk.MessageType.INFO, - buttons: Gtk.ButtonsType.OK, - text: "Hello world!", - "secondary-text": "This is an example dialog." - }) - dialog.connect("response", () => { - dialog.destroy() - }) - dialog.present() -}) - -application.run(null)- -
hello_world.js-
#!/usr/bin/env gjs -imports.gi.versions.Gtk = "3.0" -const Gtk = imports.gi.Gtk - -Gtk.init(null) - -const Hello = new Gtk.MessageDialog({ - type: Gtk.MessageType.INFO, - buttons: Gtk.ButtonsType.OK, - text: "Hello world!", - "secondary-text": "This is an example dialog." -}) - -Hello.run()-
See also: -
--
-
- -DevDocs for GJS — API documentation browser for the GNOME JavaScript platform -
- -GJS Guide — A Guide to JavaScript for GNOME -
- -GTK4 + GJS — Learn to build a GTK4 application with GJS -
Node.js
-Using node-gtk. -
- -package.json-
{ - "dependencies": { - "node-gtk": "^0.11.0" - } -}-
hello_world.js-
#!/usr/bin/env node -const gi = require('node-gtk') -const Gtk = gi.require('Gtk', '4.0') - -const application = new Gtk.Application() - -application.connect("activate", () => { - const dialog = new Gtk.MessageDialog({ - application, - message_type: Gtk.MessageType.INFO, - buttons: Gtk.ButtonsType.OK, - text: "Hello world!", - "secondary-text": "This is an example dialog." - }) - dialog.connect("response", () => { - dialog.destroy() - }) - dialog.present() -}) - -application.run(null)- -
package.json-
{ - "dependencies": { - "node-gtk": "^0.11.0" - } -}-
hello_world.js-
#!/usr/bin/env node -const gi = require('node-gtk') -const Gtk = gi.require('Gtk', '3.0') - -Gtk.init(null) - -const Hello = new Gtk.MessageDialog({ - type: Gtk.MessageType.INFO, - buttons: Gtk.ButtonsType.OK, - text: "Hello world!", - "secondary-text": "This is an example dialog." -}) - -Hello.run()-
JRuby
--
-
- Dependencies: java-gnomeAUR, jruby - -
- Build with:
jrubyc hello_world.rb && jar cfe hello_world.jar hello_world hello_world.class
-
- - Run with:
java -cp /opt/jruby/lib/jruby.jar:hello_world.jar hello_world
orjruby hello_world.rb
-
-
hello_world.rb-
require '/usr/share/java/gtk.jar' -import Java::OrgGnomeGtk::Gtk -import Java::OrgGnomeGtk::Dialog -import Java::OrgGnomeGtk::InfoMessageDialog - -Gtk.init(nil) -Hello = InfoMessageDialog.new(nil, "Hello world!", "This is an example dialog.") -Hello.run-
Julia
- -hello_world.jl-
using Gtk -info_dialog("Hello world!\n\nThis is an example dialog.")-
Jython
--
-
- Dependencies: java-gnomeAUR, jython - -
- Run with:
jython -Dpython.path=/usr/share/java/gtk.jar hello_world.py
-
-
hello_world.py-
from org.gnome.gtk import Gtk, InfoMessageDialog -Gtk.init(None) -Hello=InfoMessageDialog(None, "Hello world!", "This is an example dialog.") -Hello.run()-
Kotlin
--
-
- Dependency: java-gnomeAUR - -
- Makedependency: kotlin - -
- Build with:
kotlinc -cp /usr/share/java/gtk.jar HelloWorld.kt -include-runtime -d HelloWorld.jar
-
- - Run with:
java -cp /usr/share/java/gtk.jar:HelloWorld.jar HelloWorldKt
-
-
HelloWorld.kt-
import org.gnome.gtk.* - -fun main(args : Array<String>) { - Gtk.init(args); - val Hello = InfoMessageDialog(null, "Hello world!", "This is an example dialog."); - Hello.run(); -}-
Lua
- -hello_world.lua-
#!/usr/bin/env lua -lgi = require 'lgi' -Gtk = lgi.require('Gtk', '3.0') -Gtk.init() -Hello=Gtk.MessageDialog {message_type = Gtk.MessageType.INFO, - buttons = Gtk.ButtonsType.OK, - text = "Hello world!", - secondary_text = "This is an example dialog."} -Hello:run()-
Nemerle
--
-
- Dependency: gtk-sharp-3 - -
- Makedependency: nemerleAUR - -
- Build with:
ncc -pkg:gtk-sharp-3.0 -out:hello_world.exe hello_world.n
-
- - Run with:
mono hello_world.exe
-
-
hello_world.n-
using Gtk; -public class HelloWorld { - static Main() : void { - Application.Init (); - def Hello = MessageDialog (null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Hello world!"); - Hello.SecondaryText = "This is an example dialog."; - _ = Hello.Run (); - } -}-
OCaml
--
-
- Dependency: gtk3 - -
- Makedependency: lablgtk3 - -
- Build with:
ocamlopt -I +lablgtk3 lablgtk3.cmxa hello_world.ml -o hello_world
-
-
hello_world.ml-
let main () = - GMain.init (); - let hello = GWindow.message_dialog ~message:"Hello world!" ~message_type:`INFO ~buttons:GWindow.Buttons.ok () in - hello#set_secondary_text("This is an example dialog."); - hello#run () - -let _ = main ()-
Pascal
--
-
- Dependency: gtk3 - -
- Makedependencies: fpc, GTK 3.0 bindings - -
- Build with:
fpc hello_world
-
-
hello_world.pas-
program hello_world; -uses Math, Gtk3; -var dialog: PGtkWidget; -begin - SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]); - gtk_init(@argc, @argv); - dialog := gtk_message_dialog_new(nil, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, '%s', ['Hello world!']); - gtk_message_dialog_format_secondary_text(PGtkMessageDialog(dialog), '%s', ['This is an example dialog.']); - gtk_dialog_run(PGtkDialog(dialog)); -end.-
Perl
-- Dependencies: gtk4, perl-glib-object-introspection -
hello_world.pl-
#!/usr/bin/env perl -use Glib::Object::Introspection; -Glib::Object::Introspection->setup(basename => 'Gio', version => '2.0', package => 'Glib::IO'); -Glib::Object::Introspection->setup(basename => 'Gtk', version => '4.0', package => 'Gtk4'); - -my $application = Glib::Object::new('Gtk4::Application'); - -$application->signal_connect(activate => sub { - my $dialog = Glib::Object::new ('Gtk4::MessageDialog', - message_type => 'info', - buttons => 'ok', - text => "Hello world!", - secondary_text => 'This is an example dialog.'); - $dialog->set_application($application); - $dialog->signal_connect(response => sub { $dialog->close(); }); - $dialog->present(); -}); - -$application->run();-
- Dependency: perl-gtk3 -
hello_world.pl-
#!/usr/bin/env perl -use Gtk3 -init; -my $hello = Gtk3::MessageDialog->new (undef, 'modal', 'info', 'ok', "Hello world!"); -$hello->set ('secondary-text' => 'This is an example dialog.'); -$hello->run;-
Prolog
--
-
- Dependency: plgiAUR[broken link: package not found] - -
- Run with:
swipl hello_world.pl
-
-
hello_world.pl-
:- use_module(library(plgi)). -:- plgi_use_namespace('Gtk'). - -main :- - g_object_new('GtkMessageDialog', - ['message-type'='GTK_MESSAGE_INFO', - 'buttons'='GTK_BUTTONS_OK', - 'text'='Hello world!', - 'secondary-text'='This is an example dialog.'], - Dialog), - gtk_dialog_run(Dialog, _), - halt. -:- main.-
Python
-- Dependencies: gtk4, python-gobject -
hello_world.py-
#!/usr/bin/env python -import gi -gi.require_version('Gtk', '4.0') -from gi.repository import Gtk - -def on_activate(application): - dialog = Gtk.MessageDialog(application=application, - message_type=Gtk.MessageType.INFO, - buttons=Gtk.ButtonsType.OK, - text="Hello world!", - secondary_text="This is an example dialog.") - dialog.connect("response", lambda d, self: d.destroy()) - dialog.present() - -application = Gtk.Application() -application.connect('activate', on_activate) -application.run(None)-
- Dependencies: gtk3, python-gobject -
hello_world.py-
#!/usr/bin/env python -import gi -gi.require_version('Gtk', '3.0') -from gi.repository import Gtk -Gtk.init(None) -Hello = Gtk.MessageDialog(message_type=Gtk.MessageType.INFO, - buttons=Gtk.ButtonsType.OK, - text="Hello world!", - secondary_text="This is an example dialog.") -Hello.run()-
See also: -
--
-
- PyGObject API Reference -
- -The Python GTK+ 3 Tutorial — An introduction to developing GTK+ 3 applications in Python with PyGObject. -
Ruby
-- Dependency: ruby-gtk4AUR -
hello_world.rb-
#!/usr/bin/env ruby -require 'gtk4' - -application = Gtk::Application.new() - -application.signal_connect "activate" do - dialog = Gtk::MessageDialog.new(:type => :info, - :buttons_type => :ok, - :message => "Hello world!") - dialog.secondary_text = "This is an example dialog." - dialog.application = application - dialog.signal_connect "response" do - dialog.destroy - end - dialog.present -end - -application.run-
- Dependency: ruby-gtk3AUR -
hello_world.rb-
#!/usr/bin/env ruby -require 'gtk3' -Gtk.init -dialog = Gtk::MessageDialog.new(:type => :info, - :buttons_type => :ok, - :message => "Hello world!") -dialog.secondary_text = "This is an example dialog." -dialog.run-
- Dependency: gtk3, ruby-gir_ffi-gtkAUR[broken link: package not found] -
hello_world.rb-
#!/usr/bin/env ruby -require 'gir_ffi-gtk3' -Gtk.init -dialog = Gtk::MessageDialog.new nil, :modal, :info, :ok, "Hello world!" -dialog.secondary_text = "This is an example dialog." -dialog.run-
Rust
-Using gtk-rs. -
--
-
- Dependency: gtk4 - -
- Makedependency: rust - -
- Build with:
cargo build
-
- - Run with:
target/debug/hello_world
orcargo run
-
-
Cargo.toml-
[package] -name = "hello_world" -version = "0.1.0" - -[dependencies] -gtk4 = "^0"-
src/main.rs-
extern crate gtk4; -use gtk4::prelude::*; - -fn main() { - let app = gtk4::Application::builder() - .build(); - app.connect_activate(|application| { - let dialog = gtk4::MessageDialog::builder() - .application(application) - .message_type(gtk4::MessageType::Info) - .buttons(gtk4::ButtonsType::Ok) - .text("Hello world!") - .secondary_text("This is an example dialog.") - .build(); - dialog.connect_response(|dialog, _| dialog.destroy()); - dialog.present(); - }); - app.run(); -}-
-
-
- Dependency: gtk3 - -
- Makedependency: rust - -
- Build with:
cargo build
-
- - Run with:
target/debug/hello_world
orcargo run
-
-
Cargo.toml-
[package] -name = "hello_world" -version = "0.1.0" - -[dependencies] -gtk = "^0"-
src/main.rs-
extern crate gtk; -use gtk::prelude::*; - -fn main() { - let _ = gtk::init(); - let dialog = gtk::MessageDialog::builder() - .message_type(gtk::MessageType::Info) - .buttons(gtk::ButtonsType::Ok) - .text("Hello world!") - .secondary_text("This is an example dialog.") - .build(); - dialog.run(); -}-
See also: -
- -Scala
--
-
- Dependency: java-gnomeAUR (and scalaAUR) -
- Makedependency: scalaAUR - -
- Build with:
scalac -cp /usr/share/java/gtk.jar -d HelloWorld.jar HelloWorld.scala
-
- - Run with:
java -cp /usr/share/java/gtk.jar:HelloWorld.jar HelloWorld
(orscala -cp /usr/share/java/gtk.jar HelloWorld.scala
)
-
HelloWorld.scala-
import org.gnome.gtk._ - -object HelloWorld { - def main(args: Array[String]) { - Gtk.init(args) - var hello = new InfoMessageDialog(null, "Hello world!", "This is an example dialog.") - hello.run() - } -}-
Scheme
-- Dependencies: gtk4, guile-gi-gitAUR -
hello-world.scm-
#!/usr/bin/env guile -!# -(use-modules (gi) - (gi util)) -(push-duplicate-handler! 'merge-generics) -(use-typelibs ("Gio" "2.0") - ("Gtk" "4.0")) - -(define (activate app) - (let ((dialog (make <GtkMessageDialog> #:application app #:message-type 'info #:buttons 'ok #:text "Hello world!" #:secondary-text "This is an example dialog."))) - (connect dialog response (lambda (a, b) (destroy dialog))) - (present dialog))) - -(let ((app (make <GtkApplication>))) - (connect app application:activate activate) - (run app '()))-
- Dependencies: gtk3, guile-gi-gitAUR -
hello-world.scm-
#!/usr/bin/env guile -!# -(use-modules (gi)) -(use-typelibs ("Gtk" "3.0")) -(init!) -(let ((dialog (make <GtkMessageDialog> #:message-type 'info #:buttons 'ok #:text "Hello world!" #:secondary-text "This is an example dialog."))) -(run dialog))-
Vala
- -hello_world.vala-
int main (string[] argv) { - var application = new Gtk.Application (null, GLib.ApplicationFlags.DEFAULT_FLAGS); - - application.activate.connect (() => { - var dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!"); - dialog.application = application; - dialog.format_secondary_text ("This is an example dialog."); - dialog.response.connect (() => { - dialog.destroy (); - }); - dialog.present (); - }); - - return application.run (argv); -}- -
hello_world.vala-
static void main (string[] args) { - Gtk.init (ref args); - var dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!"); - dialog.format_secondary_text ("This is an example dialog."); - dialog.run (); -}-
See also: -
--
-
- -Valadoc — API documentation -
- Official Vala Tutorial -
- Unofficial Vala Tutorial -
Visual Basic
--
-
- Dependency: gtk-sharp-3 - -
- Makedependency: mono-basicAUR - -
- Build with:
vbnc -r:/usr/lib/mono/gtk-sharp-3.0/gtk-sharp.dll hello_world.vb
-
- - Run with:
mono hello_world.exe
-
-
hello_world.vb-
Imports Gtk -Public Class Hello - Inherits MessageDialog - Public Sub New - MyBase.New(Me, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Hello world!") - Me.SecondaryText = "This is an example dialog." - End Sub - Public Shared Sub Main - Application.Init - Dim Dialog As New Hello - Dialog.Run - End Sub -End Class-