Програми для обліку

Українське програмне забезпечення з відкритим кодом

Gtk4

Дописи

Gtk / Gtk4

02.06.2025 20:27 Gtk4

Розробка програм на C# з графічним інтерфейсом Gtk4 | MessageDialog

Приклад використання віджету MessageDialog - Повідомлення у формі діалогового вікна

Для програмування використовую Visual Studio Code.
В програмі Visual Studio Code створюємо новий проект
dotnet new console

Додаємо до проекту пакет GirCore.Gtk
dotnet add package GirCore.Gtk-4.0

Запуск програми
dotnet run

Program.cs
using Gtk;

class Program 
{
    static void Main()
    {        
        var app = Application.New("ua.org.accounting.test", Gio.ApplicationFlags.FlagsNone);

        app.OnActivate += (sender, args) =>
        {
            FirstWindow firstWindow = new(app);
            firstWindow.Show();
        };

        app.RunWithSynchronizationContext(null);
    }
}
FirstWindow.cs
using Gtk;
using static Gtk.Orientation;

class FirstWindow : Window
{
    public FirstWindow(Application app) : base()
    {
        Application = app;
        Title = "MessageDialog";

        SetDefaultSize(500, 300);

        Box vBox = Box.New(Vertical, 0);
        vBox.MarginTop = vBox.MarginBottom = vBox.MarginStart = vBox.MarginEnd = 10;
        Child = vBox;

        Button button = Button.NewWithLabel("Діалог");
        button.OnClicked += (_, _) =>
        {
            MessageDialog messageDialog = new()
            {
                TransientFor = this,
                Application = app,
                Modal = true,
                Valign = Align.Center,
                Halign = Align.Center
            };

            messageDialog.Text = "Заголовок повідомлення";
            messageDialog.SecondaryText = "Text Text Text Text Text\nText Text Text Text Text\nText Text Text Text Text";

            if (messageDialog.MessageArea != null && messageDialog.MessageArea is Box box)
                box.Append(Image.NewFromIconName("application-exit"));

            messageDialog.AddButton("Ok", 1);
            messageDialog.AddButton("Next", 2);
            messageDialog.AddButton("Close", 3);

            messageDialog.OnResponse += (_, arrg) =>
            {
                Console.WriteLine(arrg.ResponseId);
                messageDialog.Hide();
                messageDialog.Destroy();
            };

            messageDialog.Show();
        };

        Box hBox = Box.New(Horizontal, 5);
        hBox.Append(button);

        vBox.Append(hBox);
    }
}

Результат:
Gtk4 MessageDialog

Довідка: Як встановити Gtk4 для Linux та Windows

Gtk4 - кросплатформовий набір інструментів для створення графічних інтерфейсів користувача
Gir.Core - обгортка над бібліотеками Gtk4 для мови програмування C#

Visual Studio Code
Віджети Gtk 4
NuGet пакет GirCore.Gtk-4.0


© accounting.org.ua - 2025