список типов отображения wxpython

1

Я читаю некоторые файлы данных csv и пытаюсь отобразить данные. Если я буду читать их по строкам, я могу отобразить данные по строке в wx.TextCtrl. Если я прочитаю данные в виде списка:

exampleFile = open('example.csv')
exampleReader = csv.reader(exampleFile)
exampleData = list(exampleReader)
print (exampleData)
self.logger.AppendText(exampleData)

Печать работает отлично, но я получаю следующую ошибку:

TypeError: TextEntry.AppendText(): argument 1 has unexpected type 'list'

Каков предпочтительный способ отображения данных списка в wxPython?

Теги:
wxpython-phoenix

1 ответ

3

С помощью ответа @Shane в окне "Создать журнал" в Python я сделал образец для вас.

# -*- coding: utf-8 -*-

import wx
import threading
import time

class ExamplePanel(wx.Panel):        
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.quote = wx.StaticText(self, label="Your Log :", pos=(10, 10))

        self.logger = wx.TextCtrl(self, pos=(0,40), size=(1100,1100), style=wx.TE_MULTILINE | wx.TE_READONLY)

        ########################################################################
        # Use a thread to start your task
        ########################################################################
        task_thread = threading.Thread(target = self.my_task, args = ())
        task_thread.setDaemon(True)
        task_thread.start()




    def append_txt(self,txt):
        self.logger.AppendText(txt)

    def my_task(self):
        ########################################################################
        # Do your job right here and update log
        ########################################################################
        exampleFile = open('example.csv')
        exampleReader = csv.reader(exampleFile)    
        # exampleData = list(exampleReader)
        print (exampleData)
        self.logger.AppendText('CSV output : \n' )
        self.logger.AppendText('\n'.join(map(str,exampleData)))
        '''for i in range(100):
            self.append_txt('\nNew line added(No.%s)' % (i + 1))

            time.sleep(1)
        '''


def sample_Window():
    app = wx.App(False)
    frame = wx.Frame(None)
    panel = ExamplePanel(frame)
    frame.Show()
    app.MainLoop()

sample_Window()

Ваш конкретный ответ кода:

exampleFile = open('example.csv')
exampleReader = csv.reader(exampleFile)    
# exampleData = list(exampleReader)
print (exampleData)
self.logger.AppendText('CSV output : \n' )
self.logger.AppendText('\n'.join(map(str,exampleData)))

и Изображение 174551

и мой пример csv content:

Col1,Col2
1,2
M,N

Приветствия.

  • 0
    Это сделал. СПАСИБО!
  • 0
    @ user3005949 Добро пожаловать, если вы получили ответ, примите его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню