#!/usr/bin/env python3 """ ZetCode Tkinter tutorial In this example, we use the pack manager to create a review example. Author: Jan Bodnar Website: www.zetcode.com """ from tkinter import Tk, Text, TOP, BOTH, X, N, LEFT from tkinter.ttk import Frame, Label, Entry, Button from libs.paylib import Transaction import sys, threading class StdoutRedirector(object): def __init__(self, text_widget): self.text_widget = text_widget def write(self, s): self.text_widget.insert('end', s) self.text_widget.see('end') def flush(self): pass class Pay(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title("Paiement Ḡ1") self.pack(fill=X) frame1 = Frame(self) frame1.pack(fill=X) recipientLabel = Label(frame1, text="Destinataire:", width=12) recipientLabel.pack(side=LEFT, padx=5, pady=5) self.recipientEntry = Entry(frame1) self.recipientEntry.pack(fill=X, padx=5, expand=True) frame2 = Frame(self) frame2.pack(fill=X) AmountLabel = Label(frame2, text="Montant:", width=12) AmountLabel.pack(side=LEFT, padx=5, pady=5) self.AmountEntry = Entry(frame2, width=7) self.AmountEntry.pack(side=LEFT, padx=5) frame3 = Frame(self) frame3.pack(fill=X) commentLabel = Label(frame3, text="Commentaire:", width=12) commentLabel.pack(side=LEFT, padx=5, pady=5) self.commentEntry = Entry(frame3) self.commentEntry.pack(fill=X, padx=5, expand=True) frame4 = Frame(self) frame4.pack() self.sendButton = Button(frame4, text="Envoyer", command=self.ProceedPaiement) self.sendButton.pack(side=LEFT, padx=5, pady=5, expand=True) frame5 = Frame(self, width=200, height=300) frame5.pack() self.textbox = Text(frame5, wrap='word') self.textbox.pack() sys.stdout = StdoutRedirector(self.textbox) def ProceedPaiement(self): try: recipient = str(self.recipientEntry.get()) amount = int(self.AmountEntry.get()) except: print("Please enter the recipient's public and the amount\n") else: comment = str(self.commentEntry.get()) print("Paiement en cours ... " + recipient) trans = Transaction(recipient, amount, comment) trans.send() recipient = amount = comment = None def main(): def starter(): root = Tk() root.geometry("500x300+300+300") app = Pay() root.mainloop() thread = threading.Thread(target=starter) thread.start() if __name__ == '__main__': main()