سؤال

في تطبيق PYGTK الخاص بي ، أستخدم حاليًا "قابلة للتحرير" لجعل الخلايا قابلة للتحرير. ولكن نظرًا لأن محتويات الخلايا الخاصة بي في بعض الأحيان تكون كبيرة حقًا ، أريد أن أسأل المستخدم عن تغييرات في نافذة جديدة عندما يكون مضاعفًا على خلية. لكنني لم أتمكن من معرفة كيفية ربط النقرات المزدوجة على أجهزة نقل الخلايا المحددة - لا أريد تحرير الصف بأكمله ولا أريد أيضًا تعيين رد الاتصال هذا للصف بأكمله ، فقط للأعمدة التي يحتسي فيها محتوى طويل جدًا يمكن أن يحدث. كيف يمكنني القيام بذلك باستخدام cellRenderErtext () أو شيء مشابه.

رمز توليد الخلايا الخاص بي حاليًا هو:

cols[i] = gtk.TreeViewColumn(coltitle)
cells[i] = gtk.CellRendererText()
cols[i].pack_start(cells[i])
cols[i].add_attribute(cells[i], 'text', i)
cols[i].set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
cols[i].set_fixed_width(100)
cells[i].set_property('editable', True)
cells[i].connect('edited', self.edited, (i, ls))
cols[i].set_resizable(True)
mytreeview.append_column(cols[i])

شكرًا!

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

المحلول

أعتقد أن هذا غير ممكن مباشرة. ومع ذلك ، يمكنك الاتصال بـ button-press-event على ال gtk.TreeView. اذا متى event.type يساوي gtk.gdk._2BUTTON_PRESS, ، يتحول x و y إلى موقع الشجرة باستخدام gtk.TreeView.get_path_at_pos(). سيؤدي هذا إلى إرجاع مسار الشجرة الذي يشير إلى الصف و gtk.TreeViewColumn كائن الذي تم نقرته.

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