Python Forum
Button/output help
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Button/output help
#1
First of all apologies for what may be very simple, I'm just learning. I have this set up the way I want it to display. My question is how do I tell it after I put the password in the entry box and click convert password to display in the lower frame. Will I be able to copy out of the lower frame?

import 
tkinter as tk

HEIGHT = 700
WIDTH = 800

root =tk.Tk()

root.title("Put title here")

canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()


def loop_over_input(the_str=''):
    master_list = []
    for char in the_str:
        tmp_char = passwordConversion[char]
        master_list.append(tmp_char)
    print("Master Pass List: ", master_list)
    return master_list

def click():
    entered = ent.get()
    output.delete(0.0,end)

frame = tk.Frame(root, bg='red', bd=5)
frame.place(relx=0.5, rely=0.1, relwidth=0.75, relheight=0.1, anchor='n')

entry = tk.Entry(frame, font=40)
entry.place(relwidth=0.65, relheight=1)

button = tk.Button(frame, text="Convert Password", font=40)
button.place(relx=0.7, relheight=1, relwidth=0.3)

lower_frame = tk.Frame(root, bg= 'gray', bd=10)
lower_frame.place(relx=0.5, rely=0.25, relwidth=0.75, relheight=0.6, anchor='n')

#label2 = tk.Label(root, text="Enter password to be converted", bg='white')
#label2.pack(side='top')

label1 = tk.Label(lower_frame, text="Disclamer goes here", bg='white')
label1.pack(side='bottom')



passwordConversion = {
    "A": "ALPHA",
    "a": "alpha",
    "B": "BRAVO",
    "b": "bravo",
    "C": "CHARLIE",
    "c": "charlie",
    "D": "DELTA",
    "d": "delta",
    "E": "ECHO",
    "e": "echo",
    "F": "FOXTROT",
    "f": "foxtrot",
    "G": "GOLF",
    "g": "golf",
    "H": "HOTEL",
    "h": "hotel",
    "I": "INDIA",
    "i": "india",
    "J": "JULIET",
    "j": "juliet",
    "K": "KILO",
    "k": "kilo",
    "L": "LIMA",
    "l": "lima",
    "M": "MIKE",
    "m": "mike",
    "N": "NOVEMBER",
    "n": "november",
    "O": "OSCAR",
    "o": "oscar",
    "P": "PAPA",
    "p": "papa",
    "Q": "QUEBEC",
    "q": "quebec",
    "R": "ROMEO",
    "r": "romeo",
    "S": "SIERRA",
    "s": "sierra",
    "T": "TANGO",
    "t": "tango",
    "U": "UNIFORM",
    "u": "uniform",
    "V": "VICTOR",
    "v": "victor",
    "W": "WHISKEY",
    "w": "whiskey",
    "X": "XRAY",
    "x": "xray",
    "Y": "YANKEE",
    "y": "yankee",
    "Z": "ZULU",
    "z": "zulu",
    "1": "Number 1",
    "2": "Number 2",
    "3": "Number 3",
    "4": "Number 4",
    "5": "Number 5",
    "6": "Number 6",
    "7": "Number 7",
    "8": "Number 8",
    "9": "Number 9",
    "0": "Number 0",
    "~": "tilde",
    "`": "back Quote",
    "!": "exclamation point",
    "@": "at sign",
    "#": "number sign",
    "$": "dollar sign",
    "%": "percent sign",
    "^": "caret",
    "&": "ampersand",
    "*": "asterisk",
    "(": "left parentheses",
    ")": "right parentheses",
    "_": "underscore",
    "-": "hyphen",
    "+": "plus sign",
    "=": "equals sign",
    "[": "left square bracket",
    "]": "right square bracket",
    "{": "left curly bracket",
    "}": "right curly bracket",
    "/": "forwardslash",
    "<": "less than sign",
    ">": "greater than sign",
    ",": "comma",
    ".": "peorid",
    "?": "question mark",
    ":": "colon",
    ";": "semicolon",
    '"': "double quote",
    "'": "single quote",

}

#password = input("Please enter the password: ")

#print(passwordConversion)

root.mainloop()
Reply
#2
Have a look at tkinters callback function
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags


Reply
#3
I'm not understanding the documentation, I need a push please.
Reply
#4
Here is a rough example:
#! /usr/bin/env python3

import tkinter as tk

passwordConversion = {
    "A": "ALPHA",
    "a": "alpha",
    "B": "BRAVO",
    "b": "bravo",
    "C": "CHARLIE",
    "c": "charlie",
    "D": "DELTA",
    "d": "delta",
    "E": "ECHO",
    "e": "echo",
    "F": "FOXTROT",
    "f": "foxtrot",
    "G": "GOLF",
    "g": "golf",
    "H": "HOTEL",
    "h": "hotel",
    "I": "INDIA",
    "i": "india",
    "J": "JULIET",
    "j": "juliet",
    "K": "KILO",
    "k": "kilo",
    "L": "LIMA",
    "l": "lima",
    "M": "MIKE",
    "m": "mike",
    "N": "NOVEMBER",
    "n": "november",
    "O": "OSCAR",
    "o": "oscar",
    "P": "PAPA",
    "p": "papa",
    "Q": "QUEBEC",
    "q": "quebec",
    "R": "ROMEO",
    "r": "romeo",
    "S": "SIERRA",
    "s": "sierra",
    "T": "TANGO",
    "t": "tango",
    "U": "UNIFORM",
    "u": "uniform",
    "V": "VICTOR",
    "v": "victor",
    "W": "WHISKEY",
    "w": "whiskey",
    "X": "XRAY",
    "x": "xray",
    "Y": "YANKEE",
    "y": "yankee",
    "Z": "ZULU",
    "z": "zulu",
    "1": "Number 1",
    "2": "Number 2",
    "3": "Number 3",
    "4": "Number 4",
    "5": "Number 5",
    "6": "Number 6",
    "7": "Number 7",
    "8": "Number 8",
    "9": "Number 9",
    "0": "Number 0",
    "~": "tilde",
    "`": "back Quote",
    "!": "exclamation point",
    "@": "at sign",
    "#": "number sign",
    "$": "dollar sign",
    "%": "percent sign",
    "^": "caret",
    "&": "ampersand",
    "*": "asterisk",
    "(": "left parentheses",
    ")": "right parentheses",
    "_": "underscore",
    "-": "hyphen",
    "+": "plus sign",
    "=": "equals sign",
    "[": "left square bracket",
    "]": "right square bracket",
    "{": "left curly bracket",
    "}": "right curly bracket",
    "/": "forwardslash",
    "<": "less than sign",
    ">": "greater than sign",
    ",": "comma",
    ".": "peorid",
    "?": "question mark",
    ":": "colon",
    ";": "semicolon",
    '"': "double quote",
    "'": "single quote",

}

def convert(vars):
    master_list = []
    for char in vars:
        tmp_char = passwordConversion[char]
        master_list.append(tmp_char)
    return master_list

def callback():
    label_pass['text'] = f'Entered Password: {entry.get()}'
    label_converted['text'] = f'Password Converted: {convert(entry.get())}'
    entry.delete(0, tk.END)



root = tk.Tk()
root.configure(borderwidth=2, padx=8, pady=5)
root.geometry('+10+10')

label = tk.Label(text='Enter a password to convert')
label.grid(column=0, row=0, sticky='nw')

entry = tk.Entry(width=40)
entry.grid(column=0, row=1)

btn = tk.Button(text='Submit', command=callback)
btn.grid(column=0, row=2, sticky='ne', pady=8)

label_pass = tk.Label(borderwidth=1, relief='solid', anchor='nw', pady=5, padx=5, fg='red')
label_pass.grid(column=0, row=3, ipady=5, ipadx=5, sticky='new')

label_converted = tk.Label(borderwidth=1, relief='solid', fg='red', anchor='nw', pady=5, padx=5)
label_converted.grid(column=0, row=4, sticky='new')


root.mainloop()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags


Reply
#5
Tweaked the code a little

#! /usr/bin/env python3

import tkinter as tk
from functools import partial


passwordConversion = {
    "a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo",
    "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet",
    "k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar",
    "p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango",
    "u": "uniform", "v": "victor", "w": "whiskey", "x": "xray", "y": "yankee",
    "z": "zulu", "1": "Number 1", "2": "Number 2", "3": "Number 3", "4": "Number 4",
    "5": "Number 5", "6": "Number 6", "7": "Number 7", "8": "Number 8", "9": "Number 9",
    "0": "Number 0", "~": "tilde", "`": "back Quote", "!": "exclamation point",
    "@": "at sign", "#": "number sign", "$": "dollar sign", "%": "percent sign",
    "^": "caret", "&": "ampersand", "*": "asterisk", "(": "left parentheses",
    ")": "right parentheses", "_": "underscore", "-": "hyphen", "+": "plus sign",
    "=": "equals sign", "[": "left square bracket", "]": "right square bracket",
    "{": "left curly bracket", "}": "right curly bracket", "/": "forwardslash",
    "<": "less than sign", ">": "greater than sign", ",": "comma", ".": "peorid",
    "?": "question mark", ":": "colon", ";": "semicolon", '"': "double quote",
    "'": "single quote", " ": "space"

}

def convert(vars):
    if not vars:
        label_pass['anchor'] = 'nw'
        label_pass['text'] = 'Error! Please enter a password to convert'
        label_pass['fg'] = 'red'
        label_pass_header['text'] = ''
        label_converted_header['text'] = ''
        label_converted['text'] = ''
    else:
        master_list = []
        for char in vars.lower():
            tmp_char = passwordConversion[char]
            master_list.append(tmp_char)
        return master_list

def callback(event):
    label_pass_header['text'] = 'Password Entered: '
    label_pass_header['fg'] = 'navy'

    label_pass['fg'] = 'blue'
    label_pass['text'] = f'{entry.get().lower()}'
    label_pass['anchor'] = 'nw'


    label_converted_header['text'] = 'Password Converted: '
    label_converted_header['fg'] = 'navy'

    label_converted['fg'] = 'brown'
    label_converted['justify'] = 'left'
    label_converted['text'] = f'{", ".join(convert(entry.get()))}'
    entry.delete(0, tk.END)



root = tk.Tk()
root.configure(borderwidth=2, padx=8, pady=5)
root.geometry('+10+10')
root.columnconfigure(0, weight=1)

label = tk.Label(root, text='Enter a password to convert')
label.grid(columnspan=2, column=0, row=0, sticky='nw')

entry = tk.Entry(root, width=40)
entry.configure(state='normal')
entry.focus()
entry.grid(columnspan=2, column=0, row=1, sticky='nw')

btn = tk.Button(root, text='Submit', command=partial(callback, entry.get()))
btn.grid(columnspan=2, column=0, row=2, sticky='nw', pady=8)


label_pass_header = tk.Label(root, anchor='nw')
label_pass_header.grid(column=0, row=3, sticky='nw')

label_pass = tk.Label(root, borderwidth=1, anchor='nw')
label_pass.grid(column=1, row=3, sticky='nw')

label_converted_header = tk.Label(root, anchor='nw')
label_converted_header.grid(column=0, row=4, sticky='nw')
label_converted = tk.Label(root, borderwidth=1, anchor='w', wraplength=200)
label_converted.grid(column=1, row=4)

root.bind('<Return>', callback)
root.bind('<KP_Enter>', callback)


root.mainloop()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags


Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Button to clear all output labels? AnunnakiKungFu 5 2,834 Dec-18-2020, 10:12 AM
Last Post: backoboy10
  [PySimpleGui] How to alter mouse click button of a standard submit button? skyerosebud 3 5,034 Jul-21-2019, 06:02 PM
Last Post: FullOfHelp

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020