كيف يمكنني توصيل إشارات Glade باستخدام GTKBuilder في C #؟
-
18-09-2019 - |
سؤال
في بيثون، يمكن أن أفعل فقط builder.connect_signals(self)
. وبعد لا يبدو أن هذه الطريقة موجودة في C #، وبعد النظر في وثائق gtkbuilder., يبدو أن بيثون هو الاستثناء، بدلا من القاعدة. كيف يمكنني تحقيق نفس الشيء في C #؟
المحلول
الآن لم يتم تنفيذ GTK.Builder بالكامل في الإصدار الحالي من GTK # (2.12). هذه مسلك يفسر الوضع الحالي. لذلك بمجرد إصدار GTK # 2.14، يمكنك فقط القيام:
builder.Autoconnect (this);
في هذه الأثناء يمكنك استخدامها glade.xml., ثم قم بتحويل التعليمات البرمجية (وملفات Glade) كما هو موضح هنا: http://lists.ximian.com/pipermail/gtk-sharp-list/2008-october/009157.html.
نصائح أخرى
يمكنك توصيل الإشارات الخاصة بك باستخدام الطريقة Autoconnect
, ، ولكن الطريقة التي تمثل إشارة في C # يجب أن تكون في النموذج:
static void customMethod(object sender, EventArgs args);
لذلك يجب الإعلان عن كل حقل من الفصل الذي تستخدمه بهذه الطريقة static
. وبعد إنه يسرقك من إنشاء مثيل آخر من صفك.
هناك طريقة أخرى لربط الإشارات:
Builder builder = new Builder();
builder.AddFromFile("custom.glade");
Button button = (Button)builder.GetObject("closeButton");
button.Clicked += delegate {
Application.Quit();
}