سؤال

يمكنني استخدام بعض wx.ListCtrl دروس في wx.LC_REPORT وضع المعزز مع ListCtrlAutoWidthMixin.

المشكلة هي:عندما المستخدم مزدوج العمود مقسم (لصناعة السيارات في تغيير حجم عمود), عرض العمود تعيين لمطابقة عرض المحتويات.يتم ذلك عن طريق wx مكتبة تغيير حجم عمود فقط بضع بكسل عندما التحكم فارغة.

حاولت الاتصال

النفس.SetColumnWidth(colNumber, wx.LIST_AUTOSIZE_USEHEADER)

أثناء إنشاء قائمة ، ولكن فقط مجموعات الأولية عرض العمود ، وليس الحد الأدنى المسموح العرض.

أي شخص نجح مع وضع عمود الحد الأدنى من العرض ؟

تحرير:حاولت اصطياد

 wx.EVT_LEFT_DCLICK 

مع أي نجاح.هذا الحدث ليس إنشاؤها عند المستخدم مزدوج العمود مقسم.كما حاول مع

wx.EVT_LIST_COL_END_DRAG 

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

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

المحلول 2

حسنا, بعد بعض النضال حصلت يعمل الحل البديل لذلك.فمن القبيح من وجهة نظر تصميم ، ولكن يعمل بشكل جيد بما فيه الكفاية بالنسبة لي.

هذا هو كيف يعمل:

  1. متجر الأولية عرض العمود.

    self.SetColumnWidth(colNum, wx.LIST_AUTOSIZE_USEHEADER)
    
    self.__columnWidth[colNum] = self.GetColumnWidth(c)
    
  2. تسجيل معالج تحديث واجهة المستخدم الحدث.

    wx.EVT_UPDATE_UI(self, self.GetId(), self.onUpdateUI)
    
  3. و كتابة دالة معالج.

    def onUpdateUI(self, evt):
        for colNum in xrange(0, self.GetColumnCount()-1):
            if self.GetColumnWidth(colNum) < self.__columnWidth[colNum]:
                self.SetColumnWidth(colNum, self.__columnWidth[colNum])
        evt.Skip()
    

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

لا يزال, إذا كان أي شخص يعرف الحل الأفضل يرجى بعد ذلك.

نصائح أخرى

وبصراحة، لقد توقفت عن استخدام wx.ListCtrl مواطن لصالح استخدام ObjectListView . هناك قليلا من منحنى التعلم، ولكن هناك الكثير من الأمثلة. هذا سوف تكون ذات فائدة لسؤالك.

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