Python: Печать командной строки в Tkinter windget

#python #tkinter #google-api

#питон #tkinter #google-api

Вопрос:

У меня сейчас есть два файла. Один с именем quickstart, который использует API Google календаря и выводит события моего календаря на консоль и digitalclock.py это создало виджет рабочего стола, который отображает текущую дату и время. Я хочу иметь возможность выводить все, что печатается, в командную строку во время quickstart.py и отобразите его на виджете Tkinter.

вот мой quickstart.py файл

 from __future__ import print_function  import datetime  import os.path  from googleapiclient.discovery import build  from google_auth_oauthlib.flow import InstalledAppFlow  from google.auth.transport.requests import Request  from google.oauth2.credentials import Credentials  **  # If modifying these scopes, delete the file token.json.  **  SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']     def main():  """Shows basic usage of the Google Calendar API.  Prints the start and name of the next 10 events on the user's calendar.  """  creds = None  # The file token.json stores the user's access and refresh tokens, and is  # created automatically when the authorization flow completes for the first  # time.  if os.path.exists('token.json'):  creds = Credentials.from_authorized_user_file('token.json', SCOPES)  # If there are no (valid) credentials available, let the user log in.  if not creds or not creds.valid:  if creds and creds.expired and creds.refresh_token:  creds.refresh(Request())  else:  #print(os.getcwd())  flow = InstalledAppFlow.from_client_secrets_file(  'credentials.json', SCOPES)  creds = flow.run_local_server(port=0)  # Save the credentials for the next run  with open('token.json', 'w') as token:  token.write(creds.to_json())   service = build('calendar', 'v3', credentials=creds)   # Call the Calendar API  now = datetime.datetime.utcnow().isoformat()   'Z' # 'Z' indicates UTC time  print('Getting the upcoming 10 events')  events_result = service.events().list(calendarId='primary', timeMin=now,  maxResults=10, singleEvents=True,  orderBy='startTime').execute()  events = events_result.get('items', [])   if not events:  print('No upcoming events found.')  for event in events:  start = event['start'].get('dateTime', event['start'].get('date'))  print(start, event['summary'])   if __name__ == '__main__':  main()  

ВОТ МОЙ ФАЙЛ TKINTER

 from tkinter import Tk from tkinter import Label import time from datetime import date from quickstart import *   master = Tk() master.title("Peter's Digital Clock")  #gets the time of the day and displays def get_time():  timeVar = time.strftime("%I:%M:%S %p")  clock_time.config(text=timeVar)  clock_time.after(200, get_time)   clock_time = Label(master, font=("Calibri", 90), fg="green") Label(master,font=("Arial",30),fg="white").pack() clock_time.pack()  get_time()  #setup to get the date today = date.today() today_date = today.strftime("%A - %B %d, %Y")  clock_date = Label(master, text = today_date, font=("Calibri", 90), fg = "red") clock_date.pack(pady=20)   #PRINT GOOGLE CALANDER TO WIDGET g_events_text = main()  google_events = Label(master, text = g_events_text, font=("Calibri", 20), fg = "blue") google_events.pack(pady=20)    master.mainloop()  

Комментарии:

1. Вы сказали нам, чего хотите, но не объяснили, почему вы не можете этого сделать. В чем конкретно вам нужна помощь?