سؤال

وأنا أحاول التقاط الحدث انقر نقرا مزدوجا فوق في منطقة فارغة على تريفيف لإنشاء عقدة جديدة. للأسف طريقة قياسية لا تعمل. لقد حاولت ربط ButtonPressEvent على حد سواء تريفيف وScrolledWindow التي يتم استضافتها المتلفزة. أنا لا أحصل على أي رد إلى وظيفتي.

وكيف يمكنني حل هذا؟

هل كانت مفيدة؟

المحلول

وستحتاج إلى استخدام GLib.ConnectBeforeAttribute على معالج الخاص بك لمعالجة TreeView.ButtonPressEvent، وإلا فإن القطعة والتعامل مع الحدث داخليا ولن تسمى معالج الخاص بك.

وعلى سبيل المثال:

[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
    if (e.Type == Gdk.EventType.TwoButtonPress)
    {
        // double click
    }
}    

نصائح أخرى

http://old.nabble.com/CellRenderer- للتحرير على اساس انقر نقرا مزدوجا فوق-td24975510.html

self.treeview.connect("button-press-event",self.cell_clicked)

def cell_clicked(self, widget, event):
     if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
        print "Double clicked on cell"

وأعتقد أن تريفيف لديه نافذة من تلقاء نفسها.

والحصول على مقبض النافذة، ثم SendMessage (treeview-> Getsafehwnd ()، tvi_root، tvichildren)

والرسالة إرسال أعلاه هو للفهم فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top