Как мы можем распечатать вывод кода в графическом интерфейсе, а не в консоли?

у меня есть написанный фрагмент кода около 100 строк, который печатает некоторый вывод около 20 строк. Как я могу распечатать этот вывод в графическом интерфейсе??

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
617
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я только что написал эту реализацию для своего проекта на Python 2.7, но ее легко адаптировать к Python 3.6.

#!/usr/lib/python2.7/
# -*- coding: utf-8 -*-

from Tkinter import *
import ttk, collections

class GUI():    

    def __init__(self) :
        self.window = Tk()    

    def draw(self) :
        self.root = Frame(self.window,padx=15,pady=15,width=800,height=200)
        self.root.grid(column=0,row=0)
        self.drawConsole()
        self.window.mainloop()

    def drawConsole(self) :
        self.consoleFrame = Frame(self.root, padx=15)
        self.consoleFrame.grid(column=0,row=4,sticky = "EW",pady=10)
        self.logTest = Text(self.consoleFrame, height=15, state='disabled', wrap='word',background='black',foreground='yellow')
        self.logTest.grid(column=0,row=0,sticky = "EW")
        self.scrollbar = Scrollbar(self.consoleFrame, orient=VERTICAL,command=self.logTest.yview)
        self.scrollbar.grid(column=1,row=0,sticky=(N,S))
        self.logTest['yscrollcommand'] = self.scrollbar.set        

    def writeToLog(self, msg):
        numlines = self.logTest.index('end - 1 line').split('.')[0]
        self.logTest['state'] = 'normal'
        if numlines==24:
            self.logTest.delete(1.0, 2.0)
        if self.logTest.index('end-1c')!='1.0':
            self.logTest.insert('end', '\n')
        self.logTest.insert('end', msg)
        self.logTest.see(END)
        self.logTest['state'] = 'disabled'

if __name__ == "__main__":    
    gui = GUI()
    gui.draw()
    gui.writeToLog("Hello World")

Я сторонник Python 3.x, но когда дело доходит до tkinter, вы можете устанавливать метки с помощью переменных вместо использования print(). Итак, чтобы получить его в графическом интерфейсе, вы хотите установить метки с переменными. Это будет выглядеть примерно так:

from tkinter import *
window = Tk()
variable = StringVar()
variable.set(data_to_console) #You can use a variable with a string here or any string
label = Label(window, textvariable=variable)
label.grid(row=x, column=y) 

Таким образом, вы берете строки, которые будут выводиться в консоль, и используете .set(), чтобы поместить их в строковую переменную, которую может использовать tkinter. Этикетки позволяют отображать данные, которые будут напечатаны, в графическом интерфейсе. Надеюсь это поможет!

Другие вопросы по теме