Я полный новичок в Gtk# и Gdk# и совершенно не понимаю, с чего начать.
Все, что я пытаюсь сделать, это нарисовать точки и линии в любом виджете/пиксельной карте/изображении, а затем отобразить их в моем приложении gtk.
Пока я понимаю, что я должен создать объект Gdk.drawable
для доступа к методам DrawPoints(Point[] points)
и DrawLine(Point[] points)
. Однако для создания экземпляра объекта Drawable
мне нужен объект Gdk.GC
. Оба конструктора объектов принимают параметр IntPtr
, и я не знаю, какой IntPtr
мне здесь передать?! Или конструктор GC также может принимать объект Drawable, а конструктор Drawable может принимать объект GC... Здесь я вращаюсь по кругу!
Прошло 24 часа онлайн-исследований, и, кроме нескольких примеров Python, в которых используются конструкторы, не принимающие параметров, я не смог найти ни одного ресурса, чтобы начать работу с C#.
Итак, может ли кто-нибудь показать мне, как правильно использовать эти Объекты GC и Drawable для рисования линии методом DrawLine(Point[] points)
?
GDKEXAMPLE(){
win = new Gtk.Window ("Gdk nightmare");
win.SetDefaultSize (400, 300);
img=new Gtk.Image();
Drawable dr=new Drawable(null); //how to instantiate this object?
Gdk.GC gc=new Gdk.GC(null); //how to instantiate this object?
Point[] pts=new Point[3];
pts[0]=new Point(10,10);
pts[1]=new Point(15,20);
pts[2]=new Point(20,50);
dr.DrawLines(gc,pts);
Pixmap pxmp=new Pixmap(dr,100,100);
img.SetFromPixmap(pxmp,pxmp); //Requests a pixmap and pixmap mask: what mask?
img.QueueDraw();
win.Add(img);
win.ShowAll();
}
Может ли кто-нибудь помочь мне использовать класс Gdk.GC
и Gdk.Drawable
, а затем отображать любые точки или линии в виджете Gtk, пожалуйста? может быть, заставив приведенный выше код работать? или любую ссылку на какой-нибудь учебник на C# с использованием этой библиотеки gdk?
area.GdkWindow
. В документации дляGdk.Window
говорится, что он наследуется отGdk.Drawable
, что кажется быть тем, что вы ищете и что вы можете использовать для соберите Gdk.GC, если вам действительно нужен Gdk. - person millimoose   schedule 02.02.2012