Встраивание командной строки в CustomTkinter
Нужно сделать программу, в которой можно взаимодействовать с CMD через Custom Tkinter. Думаю можно использовать textbox.
Ответы (1 шт):
Да, вы можете использовать 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 виджет.
Я не стал сильно заморачиваться с дизайном, но это как пример решения вашей задачи подходит. Надеюсь что я решил вашу проблему :)