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