.NET + GTK プロジェクトテンプレート構成(手動)
了解!GTK GUI アプリを Linux で快適に開発するための .NET + GTK プロジェクトテンプレート構成(手動) をご案内します。
これは GTK3
/ GTK4
双方に対応可能で、C# 7.3 〜 latest
にも柔軟に対応します。
目次
🧱 1. プロジェクト構成(手動セットアップ)
mkdir MyGtkApp cd MyGtkApp dotnet new console --name MyGtkApp cd MyGtkApp
🛠️ 2. .csproj
の設定(GTK GUI & Linux に最適化)
📄 MyGtkApp.csproj
を以下のように編集:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>false</ImplicitUsings> <Nullable>enable</Nullable> <LangVersion>7.3</LangVersion> <UseAppHost>false</UseAppHost> <!-- NTFS環境でのchmodエラー回避 --> </PropertyGroup> <ItemGroup> <!-- GTK3 または GTK4 に応じて一方のみ使う --> <PackageReference Include="GtkSharp" Version="3.22.25.208" /> <!-- GTK3 --> <!-- <PackageReference Include="GtkSharp.Gtk4" Version="4.10.0-preview3" /> --> <!-- GTK4 --> </ItemGroup> </Project>
✅ GtkSharp
は Gtk3
、GtkSharp.Gtk4
は Gtk4
向けの NuGet パッケージです。
GTK4 を使うなら preview
バージョンを指定する必要があります。
🧪 3. シンプルな GTK ウィンドウコード(GTK3 用)
📄 Program.cs
:
using Gtk; using System; class Program { static void Main(string[] args) { Application.Init(); var win = new Window("GTK App"); win.SetDefaultSize(400, 300); win.DeleteEvent += (o, e) => Application.Quit(); var label = new Label("Hello from GTK in C#"); win.Add(label); win.ShowAll(); Application.Run(); } }
※ GTK4 の場合、初期化やウィンドウ処理が異なるため、コードも異なります。
🚀 4. ビルド&実行
dotnet restore dotnet run
💡 GTK ライブラリが未インストールなら以下も実行:
# GTK3 ランタイム(Linux) sudo apt install libgtk-3-dev # GTK4 ランタイムの場合はこちら # sudo apt install libgtk-4-dev
🧰 GTK 用テンプレートとして保存する方法(オプション)
テンプレートとして再利用したい場合:
dotnet new --install ./MyGtkApp
または、公式の GtkSharp.Template.CSharp
を使うことも可能です(ただし GTK3 向け):
dotnet new --install GtkSharp.Template.CSharp dotnet new gtkapp -n MyGtkApp
🏁 まとめ
ステップ | 内容 |
---|---|
✅ .NET Console プロジェクト作成 | dotnet new console |
✅ .csproj 設定 | GTKライブラリ追加、AppHost無効化、言語バージョン調整など |
✅ コード記述 | GTKでウィンドウ作成コードを書く |
✅ 実行 | dotnet run (必要なら GTK ランタイムをインストール) |
「GTK3 でアニメーション付き」「GTK4 の DrawingArea + イベント付きサンプル」なども作れます。欲しいパターンあれば教えてください!