Вопрос: Python создает интерактивные записи TUI


У меня есть TUI для моих скриптов, но иногда компьютер используется только с помощью мыши, поэтому я хочу сделать их кликабельными записями для пользователя

код использует python

Код слишком длинный, чтобы вставить здесь, так что вот ссылка на страницу github

В основном, что я хочу, это текстовый текстовый терминал, который открывает одну из программ внутри кода, чтобы минимизировать нагрузку на компьютер, в этом случае код работает на малине pi, а из-за ограниченной ОЗУ и 8 ГБ SD-карты я пытаюсь чтобы все было максимально минималистично.

поэтому я смотрел по сети, когда я разместил этот ответ и нашел TKinter для графического облегченного веса, я начал возиться и обнаружил, что для того, чтобы мои сценарии отображались с текстом, мне понадобилось окно терминала внутри gui, поэтому я немного погуглил и нашел это

кто-то в основном делал то же самое, что и имел в виду, но он столкнулся с ошибкой, на удивление после хорошего 1 часа попытки ее решить, я действительно сделал и теперь имею рабочий графический интерфейс с кнопками и терминалом :)

---------------------------- ПОСЛЕДНЕЕ ПОЛНОЕ ОБЪЯСНЕНИЕ ------------------- ------

Итак, узнав, что TUI в xterm невозможно щелкнуть, я просмотрел разные варианты, я нашел несколько вариантов, один использовал zenity, но мне это не понравилось, потому что я установил его раньше (имейте в виду, что это малина pi с ограниченным 1 ГБ оперативной памяти), и он почти исчерпал RPI из своей памяти, практически испугался, что это произойдет снова. Я пропустил зенит.

Я видел Tkinter, который является основным текстом для GUI, его упрощенным, легким (поскольку его почти весь код вместо тяжелого GUI, как zenity) и просто прост в использовании, если вы знаете Python, поэтому я посмотрел в него и увидел почти бесконечные возможности.

Таким образом, я начал переписывать свой TUI в легкий графический интерфейс (в конечном итоге он стал собственным тонким клиентом, как показано на этот снимок экрана)

Однако, когда я начал, я не смог заставить его работать так, как я хотел (поскольку большинство моих собственных инструментов полагаются на выполнение на основе терминала (удобство использования пользователя :)), поэтому после чего, через пару часов поиска в Google, я нашел это Сообщение unixSE, этот код был ТОЧНО, что мне нужно, но поскольку я видел, что это было прослушивание, поэтому я заглянул в него (его хобби и моя работа, чтобы исправить вещи от других!), через несколько минут я исправил это и получил его в рабочем состоянии , поэтому я начал редактировать большинство из них, в конечном итоге используя его фрагменты в моем собственном коде.

Почти две недели спустя (WOOPS!), Наконец, это делается, код загружается на GitHub для тех, кто хочет это увидеть.


1
2017-08-02 07:28


Источник




Ответы:


Я загрузил и установил Tkinter, и после немного возиться, я сделал это

-------------------------------- ДОПОЛНИТЕЛЬНОЕ ОБЪЯСНЕНИЕ ---------------- ------------------

поэтому я смотрел по сети, когда я разместил этот ответ и нашел TKinter для графического облегченного веса, я начал возиться и обнаружил, что для того, чтобы мои сценарии отображались с текстом, мне понадобилось окно терминала внутри gui, поэтому я немного погуглил и нашел это

кто-то в основном делал то же самое, что и имел в виду, но он столкнулся с ошибкой, на удивление после хорошего 1 часа попытки ее решить, я действительно сделал и теперь имею рабочий графический интерфейс с кнопками и терминалом :)

---------------------------- ПОСЛЕДНЕЕ ПОЛНОЕ ОБЪЯСНЕНИЕ ------------------- ------

Итак, узнав, что TUI в xterm невозможно щелкнуть, я просмотрел разные варианты, я нашел несколько вариантов, один использовал zenity, но мне это не понравилось, потому что я установил его раньше (имейте в виду, что это малина pi с ограниченным 1 ГБ оперативной памяти), и он почти исчерпал RPI из своей памяти, практически испугался, что это произойдет снова. Я пропустил зенит.

Я видел Tkinter, который является основным текстом для GUI, его упрощенным, легким (поскольку его почти весь код вместо тяжелого GUI, как zenity) и просто прост в использовании, если вы знаете Python, поэтому я посмотрел в него и увидел почти бесконечные возможности.

Таким образом, я начал переписывать свой TUI в легкий графический интерфейс (в конечном итоге он стал собственным тонким клиентом, как показано на этот снимок экрана)

Однако, когда я начал, я не смог заставить его работать так, как я хотел (поскольку большинство моих собственных инструментов полагаются на выполнение на основе терминала (удобство использования пользователя :)), поэтому после чего, через пару часов поиска в Google, я нашел это Сообщение unixSE, этот код был ТОЧНО, что мне нужно, но поскольку я видел, что это было прослушивание, поэтому я заглянул в него (его хобби и моя работа, чтобы исправить вещи от других!), через несколько минут я исправил это и получил его в рабочем состоянии , поэтому я начал редактировать большинство из них, в конечном итоге используя его фрагменты в моем собственном коде.

Почти две недели спустя (WOOPS!), Наконец, это делается, код загружается на GitHub для тех, кто хочет это увидеть.

---------------------------- ЖАНЬ ЗАННЫ! ----------------------------

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#title           : TBMenu
#Omschijving     : Geeft een simpel menu weer dat interactief is/shows a menu which is interactive
#Made by         : Patrick Pigmans
#Made for        : Servicenet-ITF
#Made at         : 2nd of August 2016
#python_version  : 2.7.12/3.5.2
#=======================================================================#

import Tkinter
from Tkinter import *
import subprocess
import os
from os import system as cmd

def test():
    os.system('sudo xterm -into %d -geometry 100x28 -sb -e overscan &' % terminfo)

def sysinfo():
    os.system('xterm -into %d -geometry 100x28 -sb -e systeminfo &' % terminfo)

def ipconf():
    os.system('xterm -into %d -geometry 51x11 -sb -e ipconfig &' % terminfo)

def Uninstall():
    os.system('sudo xterm -into %d -geometry 100x28 -sb -e TBuninstall &' % terminfo)

WINDOW_SIZE = "1024x768"
top = Tkinter.Tk()
top.geometry(WINDOW_SIZE)

Button1  = Tkinter.Button(top, text ="Systeem informatie opvragen", command=sysinfo)
Button1.pack()

Button2  = Tkinter.Button(top, text ="IP adres achterhalen", command = ipconf)
Button2.pack()

Button3  = Tkinter.Button(top, text ="Zwarte balken weghalen", command = test)
Button3.pack()

Button4 = Tkinter.Button(top, text = "Tools Verwijderen", command = Uninstall)
Button4.pack()

termin = Frame(top, height=1000, width=1000)

termin.pack(fill=BOTH, expand=YES)
terminfo = termin.winfo_id()


def send_entry_to_terminal(*args):
    cmd("%s" % (BasicCovTests))

if __name__ == "__main__":
    top.title('KEUZE MENU')
    top.mainloop()

Код обычно идет с остальными моими инструментами с его просто меню: P


1
2017-08-02 08:22



Этот ответ мог бы использовать некоторую разработку, чтобы быть более полезной для других - Zanna
добавлена ​​разработка :) - patrick
ха-ха, вы добавили проработку, но не существенные биты, за исключением ссылки ... эта ссылка умрет, если другой вопрос будет удален, поэтому я думаю, что вы должны включить фактическую настройку здесь :) - Zanna
Сделаю! и что еще я должен добавить в это время? - patrick
Если я хочу делать то же самое, что и вы, я должен быть в состоянии сделать это, используя только ваш ответ здесь в качестве руководства. - Zanna