GUI на C#.
Добавлено: 19 май 2004, 22:38
Вобщем, если кому-то лениво копать самому... Вот что-то типа helloworld. М.б. после него кому-то станет интересно и я буду копать mono не в одиночку.
Уж не знаю, насколько эт проавильно. но тем не менее...
собирать так:
Необходимые пакеты:
gtk-sharp
mono
mono-mcs
Остально - по зависимостям. Работает вполне приятно... Если прикрутить binfmt-misc - будет еще приятнее...
Пакеты можно брать в unstable, сборка для stable - тут.
Скриптик для поднятия bifmt-misc выглядит так:
Длря работы в ядре надо включить формат исполнимых файлов MISC. - после этого можно запускать программы просто как ./program.exe
Если кому-то это показалось интересным, то я и дальше буду выкладывать всякие свои полуфабрикаты с комментариями. Если нало - можно написать коментарии к примеру, но там ИМХО и так все понятно. Кроме того интересные вещи появляются в /usr/share/dotnet/gtk-sharp-examples/ после установки пакета gtk-sharp-examples. Ессно следует ставить какйо-нить monodoc - мне больше нарвится monodoc-http.
Код: Выделить всё
using System;
using Gtk;
class MyTEST
{
static TextView tv;
static void Main ()
{
Application.Init ();
Gtk.Window win = new Gtk.Window ("MyTEST");
win.SetDefaultSize (400, 300);
win.DeleteEvent += new DeleteEventHandler (OnWinDelete);
VBox vbox = new VBox (false, 0);
HBox hbox = new HBox (false, 0);
win.Add (vbox);
tv = new TextView ();
tv.Buffer.Text = "Hello World";
vbox.PackStart (tv, true, true, 0);
Button btn = new Button("Button 1");
btn.Clicked += new EventHandler (SomeButtonClickA);
vbox.PackStart (btn, true, true, 0);
vbox.PackStart (hbox, true, true, 0);
Button btnA = new Button("Button 2");
btnA.Clicked += new EventHandler (SomeButtonClick);
Button btnB = new Button("Button 3");
btnB.Clicked += new EventHandler (SomeButtonClick);
hbox.PackStart (btnA, true, true, 0);
hbox.PackStart (btnB, true, true, 0);
win.ShowAll ();
Application.Run ();
}
static void OnWinDelete (object o, DeleteEventArgs args)
{
Application.Quit ();
}
static void SomeButtonClick (object o, EventArgs args)
{
Console.WriteLine ("Dont touch the key");
}
static void SomeButtonClickA (object o, EventArgs args)
{
Console.WriteLine ("Dont touch the key");
Console.WriteLine (tv.Buffer.Text);
}
}
собирать так:
Код: Выделить всё
mcs hw-gtk.cs -r:gtk-sharp
gtk-sharp
mono
mono-mcs
Остально - по зависимостям. Работает вполне приятно... Если прикрутить binfmt-misc - будет еще приятнее...
Пакеты можно брать в unstable, сборка для stable - тут.
Код: Выделить всё
deb http://www.debianplanet.org/mono stable main
deb-src http://www.debianplanet.org/mono stable main
Код: Выделить всё
#!/bin/sh
# Copyright (C) 2002 Alp Toker <alp@atoker.com>
# Licensed under the terms of the GNU GPL
if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
/sbin/modprobe binfmt_misc
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
fi
if [ -e /proc/sys/fs/binfmt_misc/register ]; then
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
else
echo "No binfmt_misc support"
exit 1
fi
exit 0
Если кому-то это показалось интересным, то я и дальше буду выкладывать всякие свои полуфабрикаты с комментариями. Если нало - можно написать коментарии к примеру, но там ИМХО и так все понятно. Кроме того интересные вещи появляются в /usr/share/dotnet/gtk-sharp-examples/ после установки пакета gtk-sharp-examples. Ессно следует ставить какйо-нить monodoc - мне больше нарвится monodoc-http.