33 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать кнопку в python

Вопрос по python, window, button, user-input, module &#8211 Как сделать окно с кнопками в python

Как мне создать функцию, которая создает окно с двумя кнопками, где каждая кнопка имеет указанную строку и, если нажать на нее, возвращает указанную переменную? Аналогично @ 3:05 в этом видеоhttps://www.khanacademy.org/science/computer-science-subject/computer-science/v/writing-a-simple-factorial-program—python-2 (Я знаю, что это учебник для очень простой программы для начинающих, но это единственное видео, которое я смог найти), но без текстового поля, и у меня есть больше контроля над тем, что делают кнопки «ОК» и «Отмена».

Должен ли я создать окно, нарисовать прямоугольник со строкой внутри него, а затем создать цикл, который проверяет движение мыши / щелчки мыши, а затем возвращает что-то, как только координаты мыши находятся внутри одной из кнопок, и мышь нажата? Или есть функция / набор функций, которые облегчили бы окно с кнопками? Или модуль?

этот код создает простые нетекстовые кнопки:

чтобы создать окно с кнопкой «Hello!» и когда это закрывается, открывается новое окно с “Cool!”

обзор

Нет, вам не нужно «рисовать прямоугольник, а затем делать петлю». Что тыбудут нужно импортировать некоторый инструментарий GUI и использовать методы и объекты, встроенные в этот инструментарий. Вообще говоря, одним из этих методов будет запуск цикла, который прослушивает события и вызывает функции, основанные на этих событиях. Этот цикл называется циклом событий. Таким образом, хотя такой цикл должен выполняться, вам не нужно создавать цикл.

Предостережения

Если вы хотите открыть окно из приглашения, такого как в видео, на которое вы ссылались, проблема немного сложнее. Эти наборы инструментов не предназначены для использования таким образом. Как правило, вы пишете полную программу на основе графического интерфейса, где весь ввод и вывод осуществляется через виджеты. Это не невозможно, но, на мой взгляд, при обучении вы должны придерживаться всего текста или всего графического интерфейса, а не смешивать их.

Пример использования Tkinter

Например, одним из таких инструментов является tkinter. Tkinter – это инструментарий, встроенный в python. Любой другой инструментарий, такой как wxPython, PyQT и т. Д., Будет очень похож и работает так же хорошо. Преимущество Tkinter в том, что вы, вероятно, уже имеете его, и это фантастический инструментарий для обучения программированию GUI. Это также фантастика для более продвинутого программирования, хотя вы найдете людей, которые не согласны с этим. Не слушай их.

Вот пример в Tkinter. Этот пример работает в Python 2.x. Для Python 3.x вам нужно импортировать из tkinter скорее, чем Tkinter .

Создание кнопки в Python

Для того, чтобы создать кнопку в Python 3 с обработкой нажатия мыши, понадобится использовать пакет или библиотеку tkinter. По сути tkinter package является стандартным интерфейсом Python для инструментария Tk GUI. Поэтому его можно использовать для создания кнопки. Для осваивания данного языка это будет интересная и полезная практика. Для начала следует импортировать данный пакет и протестировать был ли он установлен в используемой вами среде разработки.

Читать еще:  Как сделать чтобы содержание нумеровалось автоматически

Установить tkinter в Линуксе (Убунту) можно через терминал (вызов терминала: Alt-Ctrl-T) набрав в терминале sudo apt-get install python3-tk. Там же в терминале можно узнать и установленную версию Питона (python – v).

Протестировать и узнать установлен ли tkinter в среде разработки можно следующим образом:

Самый простой пример кнопки без обработчика нажатия мыши можно прописать так:

Ещё пример простой до безобразия кнопки в Python 3:

Создание кнопки в Python 3 при помощи tkinter

А вот интересный пример, в котором сразу три кнопки в одном фрейме (окне) при помощи библиотеки tkinter:

  1. первая кнопка обрабатывает нажатие мыши и выводит после него сообщение на экран,
  2. вторая кнопка при нажатии выводит актуальное на данный момент время на самой кнопке,
  3. третья кнопка после нажатия на неё завершает свою работу (работу всего виджета).

Импорт пакета как tk (сокращённо). Импорт библиотеки времени.

Создание окна, в котором будут отображаться кнопки. master — родительский виджет. pack () — упаковщик для размещения блоков один под другим. Создание виджета.

Cоздание верхней кнопки. Первая кнопка обрабатывает нажатие мыши и выводит после него сообщение на экран. Текст на кнопке, также кнопку можно оформить в нужные цвета (цвет текста и фона), также можно выбрать шрифт (правда, прописанный шрифт у меня не сработал, но описан ниже для примера) и прописать размер кнопки.

сommand прописывает обращение к методу нажатия мыши на кнопку. Упаковщик pack необходим для размещения блоков один над другим.

Создание второй кнопки Выхода из программы в том же методе создания виджета. Создание кнопки выхода из программы с удалением всех виджетов. Упаковщик для размещения блоков один под другим.

Обработка нажатия мыши. Создание кнопки с указанием времени на ней на данный момент. Обращение к методу при нажатии на кнопку, который выведет актуальное на данный момент время.

Метод нажатия кнопки. Создание метода для вывода информации после нажатия на кнопку.

Создание метода, который выведет актуальное на данный момент время.

Создание собственного окна.

Создание экземпляра класса.

Запуск главного цикла обработки событий.

А вот и полностью весь код примера трёх кнопок, который по кусочкам описан выше:

Графический пользовательский интерфейс в питон

Пользовательский графический интерфейс с Tkinter в Python Питон.

В этом уроке мы разберём создание простого графического пользовательского интерфейса (GUI) в Python Питон.
GUI расшифровывается как Graphical User Interface. На русском это означает пользовательский графический интерфейс. GUI используется во всех современных программах, он позволяет значительно облегчить работу с этими программами.
Для создания GUI в Python используется модуль tkinter. Импортируем этот модуль в нашу программу.
import tkinter as tk
Для создания GUI в Питоне нужно создать окно для него. Чтобы создать окно win, используйте команду tk.Tk()
win = tk.Tk()
В конце любой программы на tkinter в Питон нужно писать команду win.mainloop(), win это название окна для интерфейса. Команда mainloop() не позволяет окну закрываться сразу же при исполнении программы. Если не поместить эту команду в конец программы на Python, то окно для интерфейса закроется сразу же после запуска программы.
win.mainloop()
Изменим название окна для интерфейса Питон с помощью команды win.title(“”). В кавычках пишется текст, который будет отображаться в названии окна.
win.title(“itrobo.ru”)
Зададим окно размером 350×200 пикселей. Для этого в Python используется команда win.geometry(AxB), где A это ширина окна, B это высота окна. A и B пишутся в кавычках и разделяются символом “x”.
win.geometry(“350×200”)
Элементы в tkinter в Питоне создаются с помощью команды
элемент = tk.название_элемента(параметры_элемента)

Читать еще:  Как сделать холодильник из коробки своими руками

Элемент метка label в Python

Метка в Python создаётся с помощью команды
txt = tk.Label(win, text = “Комментарий”)
txt это название элемента-метки, Label это название метки, win это окно, в котором отображается метка, text это параметр, отвечающий за текст в метке, “Комментарий” это текст который будет отображаться в метке. Все параметры приведены в этом уроке. (ссылка на урок с метками, все 3 урока надо выложить вместе)
Элементы в tkinter в Питоне располагаются по сетке. Чтобы поставить элемент в определённое место сетки, используйте команду txt.grid(row = m, column = n) , где txt это название элемента, который нужно расположить, row и column это параметры, отвечающие за строку и столбец с элементом, m и n это номера строки и столбца.
txt.grid(row = 2, column = 1)

Пример программы на Python графический интерфейс метка

import tkinter as tk
win = tk.Tk()
win.title(“itrobo.ru”)
win.geometry(“300×300”)
res = tk.Label(win, text = “Привет”)
res.grid(row = 3, column = 0)
win.mainloop()

Для изменения надписи на метке используется команда имя метки.configure(text=”новый текст метки”)
Например
res.configure(text=”мою надпись поменяли”)

Элемент Button кнопка в Python

Чтобы задать кнопку в графическом интерфейсе python необходимо использовать команду
название объекта кнопка = tk.Button(win, text = “надпись на кнопке”, сomand = имя функции при нажатии)
Например
button=tk.Button(win, text = “нажми меня”, comand =onclick)
создаст нкнопку с именем button надпись на кнопке Нажми меня, при нажатии будет вызываться процедура onclik
для вывода кнопки на экран мы используем разметку и команду
имя кнопки.grid(row = номер строки, column = номер столбца)
например
button.grid(row = 1, column = 1)
Приведем пример программы графический интерфейс на Python с кнопкой и меткой, при нажатии на кнпоку название метки меняется на Меня нажали
import tkinter as tk
win = tk.Tk()
win.title(“itrobo.ru”)
win.geometry(“300×300”)
res = tk.Label(win, text = “-“)
res.grid(row = 3, column = 0)
def onclick():
res.configure(text = “меня нажали”)
button = tk.Button(win, text = “нажми меня”, command = onclick)
button.grid(row = 1, column = 1)
win.mainloop()

Элемент текстовое поле в графическом интерфейсе python

Для задания тектового поля в графическом пользовательском интерфейсе Python используется команда
имя текстового поля=tk.Entry(имя окна)
например команда
text1=tk.Entry(win)
cоздаст объект текстовое поле с именем text1 в окне win
для отображения в окне интерфейса python используется команда
имя элемента.grid(row=номер строки, column=номер столбца)
Например
text1.grid(row=1,column=1)
Чтобы получить данные из текстового поля в Python используется команда
имя поля.get()
Например
znach=float(text1.get())
записывает в переменную znach числовое значение поля text1

Читать еще:  Как сделать разрыв в компасе на чертеже

Пример программы с графическим пользовательским интерфейсом в Python простейший калькулятор

Сделаем программу калькулятор на Python. В двух текстовых полях пользователь вводит два числа. При нажатии на кнопку в метке будет показываться сумма этих чисел.
Введём два текстовых поля и метку. Первое поле назовём num1, второе num2, метку назовём res. Зададим кнопку button. Поля для ввода текста задаются с помощью команды tk.Entry(win)
num1 = tk.Entry(win)
num1.grid(row = 0, column = 0)
num2 = tk.Entry(win)
num2.grid(row = 2, column = 0)
res = tk.Label(win, text = “-“)
res.grid(row = 3, column = 0)
Зададим кнопку button с помощью команды
button = tk.Button(win, text = “Сумма”)
button это название кнопки, win это окно, где отображается кнопка, text = “Сумма” это параметр, определяющий текст на кнопке.
Если вы просто зададите кнопку, запустите программу на Питоне и нажмёте на кнопку, ничего не произойдёт. Чтобы задать действие по нажатию кнопки, нужно использовать параметр кнопки command. Разберём процедуру нахождения суммы и нажатия кнопки.
При нажатии на кнопку в Python мы должны получить значения двух чисел в текстовых полях, сложить эти числа и вывести сумму в метку. Создадим для этого отдельную процедуру summation(). Подробно о процедурах в Python
Чтобы получить числа из текстовых полей в Питоне, используем команду num1.get() Обратите внимание, что текстовые поля всегда возвращают данные в виде строк, поэтому переведём их числа, используя команду float()
one = float(num1.get())
two = float(num2.get())
Теперь создадим переменную result, в которой будет храниться сумма полученных чисел.
result = one + two
После того, как мы задали метку res с результатом в Питон, нужно изменить текст в ней с “-” на результат. Это можно сделать с помощью команды res.configure(text) и форматированного вывода.
res.configure(text = “= %s” % result)
После того, как мы создали процедуру для вывода чисел в Python, назначим нажатие кнопки на неё. Это можно сделать, присвоив параметр command созданной процедуре.
button = tk.Button(win, text = “Сумма”, command = summation)
button.grid(row = 1, column = 1)
Полный код программы на python с графическим пользовательским интерфейсом простейший калькулятор.
import tkinter as tk
win = tk.Tk()
win.title(“itrobo.ru”)
win.geometry(“400×400”)
num1 = tk.Entry(win)
num1.grid(row = 0, column = 0)
num2 = tk.Entry(win)
num2.grid(row = 2, column = 0)
res = tk.Label(win, text = “-“)
res.grid(row = 3, column = 0)
def summation():
one = float(num1.get())
two = float(num2.get())
result = one + two
res.configure(text = “= %s” % result)
button = tk.Button(win, text = “Сумма”, command = summation)
button.grid(row = 1, column = 1)
win.mainloop()

Вернуться к содержанию Следующая тема Словари в Питон

Источники:

https://vike.io/ru/281429/
https://lora.in.ua/python/sozdanie-knopki-v-python.html
https://itrobo.ru/programmirovanie/python/graficheskii-polzovatelskii-interfeis-v-.html

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:
Для любых предложений по сайту: [email protected]