c#-dotnet-GTK-project-template

.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>

GtkSharpGtk3GtkSharp.Gtk4Gtk4 向けの 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 + イベント付きサンプル」なども作れます。欲しいパターンあれば教えてください!

よかったらシェアしてね!
目次