python - पायथन क्लस्टर विजेट अपेक्षित सूची नहीं लौट रहा है, प्रत्येक आइटम का केवल पहला अक्षर देता है



list widget (1)

जब आप एन्डेड विधि के माध्यम से CList को डेटा जोड़ते हैं, तो आपको एक अनुक्रम पास करना होगा। अपना कोड फिर से लिखें:

def button_add_clicked(self, data):
    dirList = os.listdir("/usr/bin")
    for item in dirList: 
       if not item.startswith('.'):
          data.append([item])
    data.sort()

जब आप CList उदाहरण बनाते हैं तो आप कंस्ट्रक्टर नंबर कॉलम्स से गुजरते हैं। आपके उदाहरण में आपने एक कॉलम के साथ CList बनाया, यही कारण है कि आप अनुलग्नक विधि में पारित अनुक्रम के केवल प्रथम तत्व (प्रथम वर्ण) देख सकते हैं।

मैंने किसी भी दी गई निर्देशिका में सभी गैर-छिपी हुई फ़ाइलें और उप-निर्देशिकाओं को मुद्रित करने के लिए एक साधारण प्रोग्राम लिखा था

मैं अब अपने कोड को क्लाइस्ट विजेट उदाहरण में माइग्रेट करने की कोशिश कर रहा हूं जो मैंने पाया है Google कुछ अनावश्यक बटनों को बाहर निकालने के अलावा, जो भी मैंने बदला था वह मेरे कोड को एकीकृत करने के लिए सबसे ऊपर था, और यह आंशिक रूप से काम करता है, सिवाय इसके कि यह केवल प्रत्येक फ़ाइल और उपनिर्देशिका का पहला अक्षर देता है तो मुझे यह उम्मीद थी:

Desktop
Downloads
Scripts
textfile.txt
pron.avi

लेकिन इसके बदले यह मिला:

D
D
S
t
p

यहाँ मैं बदल गया कोड के साथ उदाहरण है (वास्तव में सिर्फ पहली def)

import gtk, os

class CListExample:
    # this is the part Thraspic changed (other than safe deletions)
    # User clicked the "Add List" button.
    def button_add_clicked(self, data):
        dirList=os.listdir("/usr/bin")
        for item in dirList: 
           if item[0] != '.':
              data.append(item)
        data.sort()
        return


    def __init__(self):
        self.flag = 0
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.set_size_request(250,150)

        window.set_title("GtkCList Example")
        window.connect("destroy", gtk.mainquit)

        vbox = gtk.VBox(gtk.FALSE, 5)
        vbox.set_border_width(0)
        window.add(vbox)
        vbox.show()

        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)

        vbox.pack_start(scrolled_window, gtk.TRUE, gtk.TRUE, 0)
        scrolled_window.show()

        clist = gtk.CList(1)

        # What however is important, is that we set the column widths as
        # they will never be right otherwise. Note that the columns are
        # numbered from 0 and up (to an anynumber of columns).
        clist.set_column_width(0, 150)

        # Add the CList widget to the vertical box and show it.
        scrolled_window.add(clist)
        clist.show()

        hbox = gtk.HBox(gtk.FALSE, 0)
        vbox.pack_start(hbox, gtk.FALSE, gtk.TRUE, 0)
        hbox.show()
        button_add = gtk.Button("Add List")
        hbox.pack_start(button_add, gtk.TRUE, gtk.TRUE, 0)

        # Connect our callbacks to the three buttons
        button_add.connect_object("clicked", self.button_add_clicked,
clist)

        button_add.show()

        # The interface is completely set up so we show the window and
        # enter the gtk_main loop.
        window.show()

def main():
    gtk.mainloop()
    return 0

if __name__ == "__main__":
    CListExample()
    main()




clist