Python tkinter ввод числа

# Entry — Однострочное текстовое поле

Элемент Entry представляет поле для ввода текста. Конструктор Entry принимает следующие параметры:

где master — ссылка на родительское окно, а options — набор следующих параметров:

  • bg: фоновый цвет
  • bd: толщина границы
  • cursor: курсор указателя мыши при наведении на текстовое поле
  • fg: цвет текста
  • font: шрифт текста
  • justify: устанавливает выравнивание текста. Значение LEFT выравнивает текст по левому краю, CENTER — по центру, RIGHT — по правому краю
  • relief: определяет тип границы, по умолчанию значение FLAT
  • selectbackground: фоновый цвет выделенного куска текста
  • selectforeground: цвет выделенного текста
  • show: задает маску для вводимых символов
  • state: состояние элемента, может принимать значения NORMAL (по умолчанию) и DISABLED
  • textvariable: устанавливает привязку к элементу StringVar
  • width: ширина элемента
from tkinter import * root = Tk() root.title("Welcome to entry app") text = Entry(root, width=50) text.pack() root.mainloop() 
from tkinter import * root = Tk() root.title("Welcome to the second entry app") text1 = Entry(root, width=20) text1.pack() text2 = Entry(root, width=50) text2.pack() root.mainloop() 
from tkinter import * root = Tk() root.title("Welcome to the second entry app") label_login = Label(root, text="Login") label_login.pack() text1 = Entry(root, width=50) text1.pack() label_pass = Label(root, text="Password") label_pass.pack() text2 = Entry(root, width=50) text2.pack() button = Button(root, text="Enter") button.pack() root.mainloop() 
from tkinter import * def check_pass(): if entry_login.get() and entry_pass.get(): label_welcome.configure(text="Welcome. ") else: label_welcome.configure(text="Please enter the login\nand the password.") root = Tk() root.title("Welcome to the second entry app") label_login = Label(root, text="Login") label_login.pack() entry_login = Entry(root, width=10) entry_login.pack() label_pass = Label(root, text="Password") label_pass.pack() entry_pass = Entry(root, width=10, show='%') entry_pass.pack() button = Button(root, text="Enter", command=check_pass) button.pack() label_welcome = Label(root) label_welcome.pack() root.mainloop() 

Для работы с текстом, находящимся в текстовом поле, необходимо создать переменную в которой будут храниться значения, которые будут выводиться или считываться в текстовом поле. Общий вид программы зададим следующий:

from tkinter import * root = Tk() root.title("Welcome to entry app") message = StringVar() message.set("Any") text = Entry(root, width=10, textvariable=message) text.pack() root.mainloop() 

Здесь команда message.set(«Any») — устанавливает значение переменной равное строке «Any». И параметру textvariable присваивается значение переменной message.

Читайте также:  Qr код распознать php

Исследуйте переменную message добавив недостающий следующий код:

message = StringVar() print(message) print(type(message)) message.set("Any") print(message) print(message.get()) 

Подумайте над последовательностью и работой команд message.set() и message.get() . Что происходит при выполнении каждой из команд?

Определим элемент Entry и по нажатию на кнопку выведем его текст в отдельное окно с сообщением:

from tkinter import * from tkinter import messagebox def show_message(): messagebox.showinfo("GUI Python", message.get()) root = Tk() root.title("GUI на Python") root.geometry("300x250") message = StringVar() message_entry = Entry(textvariable=message) message_entry.pack() message_button = Button(text="Click Me", command=show_message) message_button.pack() root.mainloop() 

Для вывода сообщения здесь применяется дополнительный модуль messagebox, содержащий функцию showinfo() , которая собственно и выводит введенный в текстовое поле текст. Для получения введенного текста используется StringVar .

Теперь создадим более сложный пример с формой ввода:

from tkinter import * from tkinter import messagebox def display_full_name(): messagebox.showinfo("GUI Python", name.get() + " " + surname.get()) root = Tk() root.title("GUI на Python") name_label = Label(text="Введите имя:") name_label.grid(row=0, column=0, sticky="w") name = StringVar() name_entry = Entry(textvariable=name) name_entry.grid(row=0, column=1) surname_label = Label(text="Введите фамилию:") surname_label.grid(row=1, column=0, sticky="w") surname = StringVar() surname_entry = Entry(textvariable=surname) surname_entry.grid(row=1, column=1) message_button = Button(text="Click Me", command=display_full_name) message_button.grid(row=2, column=1) root.mainloop() 

# Методы Entry

Методы для виджетов — это встроенные функции, которые позволяют менять объект или получать информацию о нем.

Виджет Entry имеет ряд методов. Основные из них:

  • insert(index, str) : вставляет в текстовое поле строку по определенному индексу;
  • get() : возвращает введенный в текстовое поле текст;
  • delete(first, last=None) : удаляет символ по индексу first . Если указан параметр last , то удаление производится до индекса last . Чтобы удалить до конца, в качестве второго параметра можно использовать значение END .
Читайте также:  Среда разработки javascript от jetbrains

Используем методы в программе:

from tkinter import * from tkinter import messagebox def clear(): name_entry.delete(0, END) surname_entry.delete(0, END) def display(): messagebox.showinfo("GUI Python", name_entry.get() + " " + surname_entry.get()) root = Tk() root.title("GUI на Python") name_label = Label(text="Введите имя:") name_label.grid(row=0, column=0, sticky="w") name_entry = Entry() name_entry.grid(row=0,column=1) name_entry.insert(0, "Tom") surname_label = Label(text="Введите фамилию:") surname_label.grid(row=1, column=0, sticky="w") surname_entry = Entry() surname_entry.grid(row=1, column=1) surname_entry.insert(0, "Soyer") display_button = Button(text="Display", command=display) display_button.grid(row=2, column=0) clear_button = Button(text="Clear", command=clear) clear_button.grid(row=2, column=1) root.mainloop() 

При запуске программы в оба текстовых поля добавляется текст по умолчанию:

name_entry.insert(0, "Tom") surname_entry.insert(0, "Soyer") 

Кнопка Clear очищает оба поля, вызывая метод .delete() :

def clear(): name_entry.delete(0, END) surname_entry.delete(0, END) 

Вторая кнопка, используя метод .get() , получает введенный текст:

def display(): messagebox.showinfo("GUI Python", name_entry.get() + " " + surname_entry.get()) 

Как видно из примера, нам необязательно обращаться к тексту в Entry() через переменные типа StringVar() , можно это сделать напрямую через метод .get() .

# Упражнения

  1. Создайте окно с текстовым полем Entry , и задайте значение текстового поля: «Текстовое поле вводит и выводит текст только одной строкой», используя метод .insert() .
  2. Используя переменную StringVar() . Создайте окно с текстовым полем и двумя кнопками:
    • кнопкой «Paste», при нажатии на которую, в текстовом поле выводится текст: «The button clicked!».
    • кнопкой «Clear», при нажатии на которую, текст в текстовом поле стирается.
  • кнопкой «Paste», при нажатии на которую, в текстовом поле выводится текст: «The button clicked!».
  • кнопкой «Clear», при нажатии на которую, текст в текстовом поле стирается.
The first line The second line 
  • при нажатии на вторую кнопку, должны выводиться значения первого и второго полей в консоль с пояснениями в виде:
"Значение первого поля: " "Значение второго поля: " 

Источник

Читайте также:  Java аргументы для майнкрафт сервера

Python tkinter ввод числа

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

Оцените статью