Встраивание командной строки в CustomTkinter

Нужно сделать программу, в которой можно взаимодействовать с CMD через Custom Tkinter. Думаю можно использовать textbox.


Ответы (1 шт):

Автор решения: KiryxaKart

Да, вы можете использовать Text виджет из Tkinter (или аналогичный виджет из customtkinter) для создания текстового поля, которое будет отображать вывод командной строки. Вот пример того, как это можно сделать:

import customtkinter as ctk
import subprocess

def execute_command(command):
    process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    output, error = process.communicate()
    return output.decode('utf-8'), error.decode('utf-8')

class CmdApp(ctk.CTk):
    def __init__(self):
        super().__init__()

        self.text_box = ctk.CTkTextbox(self)
        self.text_box.pack()

        self.entry = ctk.CTkEntry(self)
        self.entry.pack()
        self.entry.bind('<Return>', self.run_command)

    def run_command(self, event):
        command = self.entry.get()
        output, error = execute_command(command)

        self.text_box.insert('end', output)
        self.text_box.insert('end', error)

        self.entry.delete(0, 'end')

app = CmdApp()
app.mainloop()

В этом примере создается новое приложение CTk, а затем создается CTkText виджет и CTkEntry виджет. Когда пользователь вводит команду в CTkEntry виджет и нажимает Enter, команда выполняется, а вывод отображается в CTkText виджет.

Я не стал сильно заморачиваться с дизайном, но это как пример решения вашей задачи подходит. Надеюсь что я решил вашу проблему :)

→ Ссылка