سؤال

أحتاج إلى إزالة سهم الفرز من رأس العمود. يمكن القيام بذلك عن طريق الاتصال set_sort_indicator (خطأ) في العمود.

لا يتم عرض السهم، ولكن يبدو أن المساحة لأنه لا يزال مخصصا. إذا كان عنوان العمود كبيرا بما يكفي لملء جميع الرأس، فسيتم قص الجزء الأخير (حيث يجب أن يكون السهم).

هل هناك طريقة لجعل العنوان تملأ الرأس بأكمله؟

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

المحلول

يبدو أن هذا غريب بعض الشيء في GTK +. أنا تحميلها وقراءة الأجزاء ذات الصلة من رمز GTKTREEViewColumn، ويبدو أنه يستخدم هذا المنطق:

  if (tree_column->show_sort_indicator ||
       (GTK_IS_TREE_SORTABLE (model) && tree_column->sort_column_id >= 0))
    gtk_widget_show (arrow);
  else
    gtk_widget_hide (arrow);

أين arrow هي القطعة تحمل السهم. يبدو أن هذا يشير إلى أن القطعة السهم معبأة دائما في المربع الأفقي التي تشكل رأس العمود، ثم مخفية فقط (غير إزالتها) إذا لم يكن من المفترض أن تكون مرئية. هذا يعني أنه لا يزال هناك في المربع، والاحتلال مساحة وتسبب في قص الملصق.

أوصي بالبحث من خلال GTK + BugTracker. للحصول على مشكلة حول هذا، وإن لم يتم العثور على أي شيء، قم بإنشاء واحد.

نصائح أخرى

حسنا، لذلك قدمت تقرير علة إلى GTK. قالوا إنها ليست مشكلة ولن يتم إصلاحها.

لقد نظرت إلى مجموعة أدوات رسومية أخرى (Windows و QT) وتنفيذها مختلفة، لكن هذا لا يبدو مهما بالنسبة للرجال في فريق GTK.

حسنا يمكنك استخدام set_clickable طريقة للعمود أنت لا تريد أن يكون لها سهمثم استخدام signal_connect إلى clicked إشارة وربطها إلى وظيفة الذي سوف تستخدم get_sort_column_id للحصول على ترتيب الفرز الحالي ثم تطبيق ترتيب الفرز العكسي استخدام set_sort_column_id.

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