Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Incorporer la console dans une fenêtre tkinter

+3 votes

J'ai un petit programme avec tkinter et quand je le lance, j'ai la console windows qui est à moitié recouverte par ma fenêtre tkinter.

La console est utile car à l'aide de quelques print bien placés, j' observe en temps temps
réel le bon déroulement des mes clicks sur mon interface, ainsi que les traitements qui en découlent.

C'est un peu sale en l' état, et j'aimerai avoir une sous-fenêtre ou l'équivalent d'un canvas, qui servirait à incruster la console windows à l' intérieur de ma fenêtre principale...
est-ce possible sous windows ?
est-ce possible sous linux ?

demandé 21-Mai-2015 par buffalo974 (2,690 points)

1 Réponse

+5 votes
 
Meilleure réponse

Hi,
Sous linux c'est possible,

version python : python3
(testé aussi sous python2 avec le module Tkinter, ne pas oublier le T majuscule pour importer le module Tkinter sous python2 !)
Modules utilisés : os, tkinter
Dimensions de la console utilisés ici : 20*40
Type de console : xterm

code :

from tkinter import *
import os

root = Tk()
termf = Frame(root, height=400, width=500)

termf.pack(fill=BOTH, expand=YES)
wid = termf.winfo_id()
os.system('xterm -into %d -geometry 40x20 -sb &' % wid)

root.mainloop()

Pour l'exemple, je fais tourner une appli tkinter avec un terminal incrusté en lançant htop pour voir en temps réel l'état du processus

j'obtiens :

image

répondu 21-Mai-2015 par boblinux (3,092 points)
sélectionné 23-Mai-2015 par buffalo974

Oui c'est ça que je voudrai si possible sous windows (il ne reconnait pas xterm)

Ta fenêtre-console est elle uniquement informative , ou également interactive.
je préférerai que l'utilisateur ne puisse pas faire de connerie dans la console.

C'est réellement un terminal, donc interactif.

Sous windowb, je ne vois pas trop comment tu pourrais faire =s, mais ce n'est pas très user-friendly que de laisser un terminal ouvrir en plein milieu =D, c'est plus pour le développeur afin qu'il puisse faire ses tests et jeter un coup d’œil aux prints.

Mais si tu y tiens tellement, tu devrais juste créer une frame et y afficher du texte dedans ^^, au fur est à mesure des infos affichés, tu supprimes l'ancien texte et écris ton nouveau texte.

Car le module OS fout la m... quand tu changes d'OS, normal quoi ><' ;p

...