Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
GTK/開発のソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
GTK/開発
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ウィジェットツールキット]] [[Category:開発]] [[en:GTK/Development]] == シンプルなメッセージダイアログアプリ == GObject-Introspection やバインディングを使うことで多くのプログラミング言語で簡単に GTK+ 3 のメッセージダイアログを作ることができます、また bash を使うこともできます。 以下の例ではシンプルに "Hello world" をメッセージダイアログに表示します。 === Ada === * 依存パッケージ: {{AUR|gtkada}} * ビルドするのに必要なパッケージ: {{Pkg|gcc-ada}} * ビルド: {{ic|gnatmake hello_world `gtkada-config`}} {{hc|hello_world.adb|2= 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 === *依存パッケージ: {{Pkg|zenity}} {{hc|hello_world.sh|<nowiki>#!/bin/bash zenity --info --title='Hello world!' --text='This is an example dialog.'</nowiki>}} === BASIC === * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{AUR|freebasic-gnomeheaders}} * ビルド: {{ic|fbc hello_world.bas}} {{hc|hello_world.bas|2= #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 === *依存パッケージ: {{Pkg|gtk-sharp-3}} ({{AUR|boo}}) *ビルドするのに必要なパッケージ: {{AUR|boo}} *ビルド: {{ic|booc hello_world.boo}} *実行: {{ic|mono hello_world.exe}} (もしくは {{ic|booi hello_world.boo}}) {{hc|hello_world.boo|<nowiki>import Gtk from "gtk-sharp" Application.Init() Hello = MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!") Hello.SecondaryText = "This is an example dialog." Hello.Run()</nowiki>}} === C === *依存パッケージ: {{Pkg|gtk3}} *ビルド: {{Ic|gcc -o hello_world `pkg-config --cflags --libs gtk+-3.0` hello_world.c}} {{hc|hello_world.c|<nowiki>#include <gtk/gtk.h> void main (int argc, char *argv[]) { gtk_init (&argc, &argv); GtkWidget *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)); }</nowiki>}} === C++ === *依存パッケージ: {{Pkg|gtkmm3}} *ビルド: {{Ic|g++ -o hello_world `pkg-config --cflags --libs gtkmm-3.0` hello_world.cc}} {{hc|hello_world.cc|<nowiki>#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; }</nowiki>}} === C# === *依存パッケージ: {{Pkg|gtk-sharp-3}} *ビルド: {{ic|mcs -pkg:gtk-sharp-3.0 hello_world.cs}} *実行: {{ic|mono hello_world.exe}} {{hc|hello_world.cs|<nowiki>using Gtk; public class HelloWorld { static void Main() { Application.Init (); MessageDialog Hello = new MessageDialog (null, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "Hello world!"); Hello.SecondaryText="This is an example dialog."; Hello.Run (); } }</nowiki>}} === Clojure === * 依存パッケージ: {{AUR|java-gnome}}, {{Pkg|leiningen}} * 実行: {{ic|lein run}} {{hc|project.clj|<nowiki> (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"]) </nowiki>}} {{hc|src/hello_world/core.clj|2= (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 === * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{Pkg|crystal}}, [https://github.com/jhass/crystal-gobject#readme crystal-gobject] * ビルド: {{ic|crystal build hello_world.cr}} {{hc|hello_world.cr|2= 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 === * 依存パッケージ: {{Pkg|gtkd}} * ビルドするのに必要なパッケージ: {{Pkg|dmd}} * ビルド: {{ic|dmd hello_world $(pkg-config --cflags --libs gtkd-2)}} {{hc|hello_world.d|2= 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# === * 依存パッケージ: {{Pkg|gtk-sharp-3}} * ビルドするのに必要なパッケージ: {{AUR|fsharp}} * ビルド: {{ic|fsharpc -r:gtk-sharp.dll -I:/usr/lib/mono/gtk-sharp-3.0/ hello_world.fs}} * 実行: {{ic|mono hello_world.exe}} {{hc|hello_world.fs|<nowiki> open Gtk 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 </nowiki>}} === Fortran === * 依存パッケージ: {{AUR|gtk-3-fortran-git}} * ビルドするのに必要なパッケージ: {{Pkg|gcc-fortran}} * ビルド: {{ic|gfortran -o hello_world $(pkg-config --cflags --libs gtk-3-fortran) hello_world.f90}} {{hc|hello_world.f90|<nowiki> 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 </nowiki>}} === Genie === *依存パッケージ: {{Pkg|gtk3}} *ビルドするのに必要なパッケージ: {{Pkg|vala}} *ビルド: {{Ic|valac --pkg gtk+-3.0 hello_world.gs}} {{hc|hello_world.gs|<nowiki>uses Gtk init Gtk.init (ref args) var Hello=new MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!") Hello.format_secondary_text ("This is an example dialog.") Hello.run ()</nowiki>}} === Go === * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{AUR|gotk3-git}} * ビルド: {{ic|go build hello_world.go}} * (もしくは実行: {{ic|go run hello_world.go}}) {{hc|hello_world.go|2= package main import ("github.com/conformal/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 === * 依存パッケージ: {{Pkg|groovy}}, {{AUR|java-gnome}} * ビルド: {{ic|groovyc -cp /usr/share/java/gtk.jar HelloWorld.groovy && jar cfe HelloWorld.jar HelloWorld HelloWorld.class}} * 実行: {{ic|java -cp /usr/share/groovy/embeddable/groovy-all.jar:/usr/share/java/gtk.jar:HelloWorld.jar HelloWorld}} または {{ic|groovy -cp /usr/share/java/gtk.jar HelloWorld.groovy}} {{hc|HelloWorld.groovy|2= import org.gnome.gtk.* Gtk.init() def Hello = new InfoMessageDialog(null, "Hello world!", "This is an example dialog.") Hello.run() }} === Haskell === * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{Pkg|haskell-gtk}}{{Broken package link|置換パッケージ: {{Pkg|haskell-gtk3}}}} * ビルド: {{ic|ghc hello_world}} {{hc|hello_world.hs|2= 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 === * 依存パッケージ: {{Pkg|gtk-sharp-3}}, {{AUR|ironpython}} * 実行: {{ic|ipy hello_world.py}} {{hc|hello_world.py|2= 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 === *依存パッケージ: {{AUR|java-gnome}} *ビルドするのに必要なパッケージ: java-environment *ビルド: {{ic|mkdir HelloWorld && javac -classpath /usr/share/java/gtk.jar -d HelloWorld HelloWorld.java}} *実行: {{ic|java -classpath /usr/share/java/gtk.jar:HelloWorld HelloWorld}} {{hc|HelloWorld.java|<nowiki>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(); } }</nowiki>}} === JavaScript === *依存パッケージ: {{Pkg|gtk3}}, {{Pkg|gjs}} {{hc|hello_world.js|<nowiki>#!/usr/bin/gjs Gtk = imports.gi.Gtk Gtk.init(null, null) Hello = new Gtk.MessageDialog({type: Gtk.MessageType.INFO, buttons: Gtk.ButtonsType.OK, text: "Hello world!", "secondary-text": "This is an example dialog."}) Hello.run()</nowiki>}} === JRuby === * 依存パッケージ: {{AUR|java-gnome}}, {{Pkg|jruby}} * ビルド: {{ic|jrubyc hello_world.rb && jar cfe hello_world.jar hello_world hello_world.class}} * 実行: {{ic|java -cp /opt/jruby/lib/jruby.jar:hello_world.jar hello_world}} または {{ic|jruby hello_world.rb}} {{hc|hello_world.rb|2= 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 === * 依存パッケージ: {{Pkg|julia}}, [https://juliagraphics.github.io/Gtk.jl/latest/ Gtk.jl] * 実行: {{ic|1=julia hello_world.jl}} {{hc|hello_world.jl|2= using Gtk info_dialog("Hello world!\n\nThis is an example dialog.") }} === Jython === * 依存パッケージ: {{AUR|java-gnome}}, {{Pkg|jython}} * 実行: {{ic|1=jython -Dpython.path=/usr/share/java/gtk.jar hello_world.py}} {{hc|hello_world.py|2= from org.gnome.gtk import Gtk, InfoMessageDialog Gtk.init(None) Hello=InfoMessageDialog(None, "Hello world!", "This is an example dialog.") Hello.run() }} === Kotlin === * 依存パッケージ: {{AUR|java-gnome}} * ビルドするのに必要なパッケージ: {{Pkg|kotlin}} * ビルド: {{ic|kotlinc -cp /usr/share/java/gtk.jar HelloWorld.kt -include-runtime -d HelloWorld.jar}} * 実行: {{ic|java -cp /usr/share/java/gtk.jar:HelloWorld.jar HelloWorldKt}} {{hc|HelloWorld.kt|2= 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 === * 依存パッケージ: {{Pkg|gtk3}}, {{Pkg|lua-lgi}} {{hc|hello_world.lua|2= #!/usr/bin/env lua lgi = require 'lgi' Gtk = lgi.require('Gtk') 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 === * 依存パッケージ: {{Pkg|gtk-sharp-3}} * ビルドするのに必要なパッケージ: {{AUR|nemerle}} * ビルド: {{ic|ncc -pkg:gtk-sharp-3.0 -out:hello_world.exe hello_world.n}} * 実行: {{ic|mono hello_world.exe}} {{hc|hello_world.n|2= 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 === * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{Pkg|lablgtk3}} * ビルド: {{ic|ocamlopt -I +lablgtk3 lablgtk3.cmxa hello_world.ml -o hello_world}} {{hc|hello_world.ml|2= 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 === * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{Pkg|fpc}}, [http://wiki.freepascal.org/Gtk+3 Gtk+3.0 bindings] * ビルド: {{ic|fpc hello_world}} {{hc|hello_world.pas|2= 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 === *依存パッケージ: {{Pkg|perl-gtk3}} {{hc|hello_world.pl|<nowiki>#!/usr/bin/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;</nowiki>}} === Prolog === * 依存パッケージ: {{AUR|plgi}} * 実行: {{ic|swipl hello_world.pl}} {{hc|hello_world.pl|2= :- 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 === *依存パッケージ: {{Pkg|gtk3}}, {{Pkg|python-gobject}} (Python 2 の場合 {{Pkg|python2-gobject}}) {{hc|hello_world.py|2= #!/usr/bin/env python import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk Gtk.init(None) Hello=Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!") Hello.format_secondary_text("This is an example dialog.") Hello.run()}} === Ruby === * 依存パッケージ: {{Pkg|gtk3}}, {{AUR|ruby-gir_ffi-gtk}} {{hc|hello_world.rb|2= #!/usr/bin/env ruby require 'gir_ffi-gtk3' Gtk.init Hello = Gtk::MessageDialog.new nil, :modal, :info, :ok, "Hello world!" Hello.secondary_text = "This is an example dialog." Hello.run }} * 依存パッケージ: {{Pkg|ruby-gtk3}} {{hc|hello_world.rb|2= #!/usr/bin/env ruby require 'gtk3' Gtk.init Hello = Gtk::MessageDialog.new(:type => :info, :buttons_type => :ok, :message => "Hello world!") Hello.secondary_text = "This is an example dialog." Hello.run }} === Rust === [http://gtk-rs.org/ Gtk-rs] を使用。 * 依存パッケージ: {{Pkg|gtk3}} * ビルドするのに必要なパッケージ: {{Pkg|rust}} * ビルド: {{ic|cargo build}} * 実行: {{ic|target/debug/hello_world}} または {{ic|cargo run}} {{hc|Cargo.toml|2= [package] name = "hello_world" version = "0.1.0" [dependencies] gtk = "^0" }} {{hc|src/main.rs|2= extern crate gtk; use gtk::prelude::*; use gtk::{ButtonsType, DialogFlags, MessageType, MessageDialog, Window}; fn main() { let _ = gtk::init(); MessageDialog::new(None::<&Window>, DialogFlags::empty(), MessageType::Info, ButtonsType::Ok, "Hello world!").run(); } }} === Scala === * 依存パッケージ: {{AUR|java-gnome}} ({{Pkg|scala}}) * ビルドするのに必要なパッケージ: {{Pkg|scala}} * ビルド: {{ic|scalac -cp /usr/share/java/gtk.jar -d HelloWorld.jar HelloWorld.scala}} * 実行: {{ic|java -cp /usr/share/java/gtk.jar:HelloWorld.jar HelloWorld}} または {{ic|scala -cp /usr/share/java/gtk.jar HelloWorld.scala}} {{hc|HelloWorld.scala|2= 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() } } }} === Vala === *依存パッケージ: {{Pkg|gtk3}} *ビルドするのに必要なパッケージ: {{Pkg|vala}} *ビルド: {{Ic|valac --pkg gtk+-3.0 hello_world.vala}} {{hc|hello_world.vala|<nowiki>using Gtk; public class HelloWorld { static void main (string[] args) { Gtk.init (ref args); var Hello=new MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, "Hello world!"); Hello.format_secondary_text ("This is an example dialog."); Hello.run (); } }</nowiki>}} === Visual Basic === *依存パッケージ: {{Pkg|gtk-sharp-3}} *ビルドするのに必要なパッケージ: {{AUR|mono-basic}} *ビルド: {{ic|vbnc -r:/usr/lib/mono/gtk-sharp-3.0/gtk-sharp.dll hello_world.vb}} *実行: {{ic|mono hello_world.exe}} {{hc|hello_world.vb|<nowiki>Imports Gtk Public Class Hello Inherits MessageDialog Public Sub New MyBase.New(Me, DialogFlags.Modal, MessageType.Info, ButtonsType.Close, "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</nowiki>}} == 参照 == * [https://developer.gnome.org/ GNOME Developer Center] * [https://developer.gnome.org/gtk3/stable/ GTK 3 リファレンスマニュアル] * [https://developer.gnome.org/gtkmm-tutorial/stable/ gtkmm 3 チュートリアル]
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Broken package link
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
GTK/開発
に戻る。
検索
検索
GTK/開発のソースを表示
話題を追加