Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 17, 2018 16:08:24

GameStar
От: Новокузнецк
Зарегистрирован: 2014-12-04
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

Всем привет. Делаю свою первую, учебную игру “Угадай число”. Код игры написал по самоучителю, но там только непосредственно “техническая” составляющая, скажем так, а визуальной (самого интерфейса игры) - там нет. Как импортировать и работать с tkinter'ом и создавать холст - я знаю и умею, с этим проблем нет. Вопрос в том, как украсить холст, сделав его более красивым, а также - как добавить поле для ввода чисел и как прикрутить вывод текста ответов и подсказок (загаданное число больше/меньше)? Вот сам код с комментариями:

 answers = ["Верно", "Правильно", "Молодец!"] #Ответы. В будущем будут изменены
import random
num = random.randint (1, 100)
while True: #Создание цикла самой игры
    print ('Введите число от 1 до 100')
    guess = input()
    i = int (guess)
    if i == num:
        print (random.choice (answers)) #Вывод случайно выбранного ответа
        break
    elif i < num:
        print ('Загаданное число больше')
    elif i > num:
        print ('Загаданное число меньше')

Офлайн

#2 Дек. 17, 2018 20:41:10

Ignat
Зарегистрирован: 2018-11-10
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

В kivy не пробовал?

Офлайн

#3 Дек. 17, 2018 20:43:10

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

к этому Гуи прикрутить невозможно. Хотя ради занудства стоит сказать что таки возможно, но усилия по “прикручиванию” будут несопоставимы с написанием кода заново уже с использованием ГУИ-шных библиотек.
Но это на данном этапе , когда ваша программа состоит из 10-ти строк. Если же вы задумали писать большую программу, и рассчитываете в дальнейшем прикручивать ГУИ, то нужно заранее об этом побеспокоиться, оставив интерфейсы позволяюще другой программе взаимодействать с вашей программой. Но вам об это еще рановато думать, оно придет со временм.

GameStar
Вопрос в том, как украсить холст, сделав его более красивым, а также - как добавить поле для ввода чисел и как прикрутить вывод текста ответов и подсказок (загаданное число больше/меньше)?
Если интересует именно tkinter то вот немного основ
https://ru.wikiversity.org/wiki/%D0%9A%D1%83%D1%80%D1%81_%D0%BF%D0%BE_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B5_Tkinter_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_Python
еще вот, достаточно доходчиво: http://www.russianlutheran.org/python/nardo/nardo.html
А вообще я бы не связывался с tkinter, в ввиду его “убогости”, а сразу изучал чтонить типа PyQT\PySide или wxWidgets.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Дек. 17, 2018 20:43:28)

Офлайн

#4 Дек. 17, 2018 21:11:30

GameStar
От: Новокузнецк
Зарегистрирован: 2014-12-04
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

PEHDOM
https://ru.wikiversity.org/wiki/%D0%9A%D1%83%D1%80%D1%81_%D0%BF%D0%BE_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B5_Tkinter_%D1%8F%D0%B7%D
спасибо
PEHDOM
еще вот, достаточно доходчиво: http://www.russianlutheran.org/python/nardo/nardo.html
как я понял, он больше с уклоном на линукс…
PEHDOM
PyQT\PySide
а они больше подходят для создания именно полноценных приложений? и можно ли писать их код в питон-редакторах, или нужно специальные проги ставить?

Кстати: где можно поискать не очень сложные задачки по питону, чтобы попрактиковаться? я дочитал свой самоучитель, и теперь нужно много практики как для закрепления, так и для дальнейшего развития и дальнейшего изучения.

P.S. если что - у меня семерка, а не линукс (это так, для справки и для подбора материала). Редактор - Thonny.

Офлайн

#5 Дек. 17, 2018 22:11:48

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

GameStar
как я понял, он больше с уклоном на линукс…
пофиг, пайтон как и ткинтер кросплатворменная фигня.

GameStar
а они больше подходят для создания именно полноценных приложений?
ИМХО , да. Qt достаточно популярная платворма, на ней написано ГУИ для многих программ
Skype, Telegram, VLC, VirtualBox, и тд.. https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F,_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8E%D1%89%D0%B8%D0%B5_Qt

GameStar
и можно ли писать их код в питон-редакторах, или нужно специальные проги ставить?
можно создавать оошки в QDesigner\QCreator , а можно ручками писать в любом редакторе.

GameStar
где можно поискать не очень сложные задачки по питону, чтобы попрактиковаться?
Вот честно не знаю. Но, ИМХО, лучше практивоаться на реальных задачах. Вот поставь себе задачу, например написать медиплеер или хоть морской бой или даже банальную показывалку прогноза погоды в твоем городе, только без дураков, со всеми менюшками, и прочим и пиши. Я когда писал свою первую более-менее “серьезную” программу, узнал в разы больше чем за все время решения “задачек”.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#6 Дек. 18, 2018 12:14:37

GameStar
От: Новокузнецк
Зарегистрирован: 2014-12-04
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

Перечитав еще раз и обдумав все эти ответы на свои вопросы, мне пришла такая мысль: а что кроме сайтов и библиотек можно сделать на чистом питоне - то есть не на его диалектах, а на нем самом, используя только его родные, встроенные модули (то есть не прибегая к помощи сторонних, скачиваемых и подключаемых извне)?

Офлайн

#7 Дек. 18, 2018 12:33:09

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

GameStar
а что кроме сайтов и библиотек можно сделать на чистом питоне - то есть не на его диалектах, а на нем самом, используя только его родные, встроенные модули (то есть не прибегая к помощи сторонних, скачиваемых и подключаемых извне)?
в теории практически все что угодно(вопрос целесообразности оставим за бортом), даже если под “родные, встроенные модули” понимать то что идет из коробки, а под “чистом питоне” подразумевается CPython скачаный с python.org.
Нет конечно есть исключения, поскольку пайтн интерпретируемый ЯП то вы не напишете на нем ОС или драйвер, или еще чтото в этом роде.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#8 Дек. 18, 2018 13:17:43

GameStar
От: Новокузнецк
Зарегистрирован: 2014-12-04
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

PEHDOM
поскольку пайтн интерпретируемый ЯП то вы не напишете на нем ОС или драйвер, или еще чтото в этом роде.
нет конечно, до этого мне как до Китая пешком))) об этом я и мечтать пока не могу.
PEHDOM
даже если под “родные, встроенные модули” понимать то что идет из коробки
да. Те же turtle, tkinter и иже с ними.
PEHDOM
скачаный с python.org
да, он самый.

Я сегодня ночью еще думал, что было бы неплохо попытаться написать тот же блокнот или хотя бы калькулятор. Но если использовать ткинтер - то это может оказаться очень сложным, поскольку я не представляю координаты, и боюсь что не смогу нормально расположить кнопки цифр 0-9, кнопки операций и т.д. Или, например, сделать “Файл”, “Правка”, “Формат” и т.д.

Офлайн

#9 Дек. 18, 2018 13:36:39

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

GameStar
то это может оказаться очень сложным, поскольку я не представляю координаты, и боюсь что не смогу нормально расположить кнопки цифр 0-9, кнопки операций и т.д.
на самом деле нет, для этого есть метод grid() чтобы вручную не прописывать координаты каждой кнопки
както так:
https://habr.com/sandbox/115348/

GameStar
Или, например, сделать “Файл”, “Правка”, “Формат” и т.д.
для этого в ткинтер есть, как ни старанно, виджет Menu()



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#10 Дек. 18, 2018 13:58:35

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Как сделать графический интерфейс с функцией ввода-вывода?

Неплохо описаны основы работы с tkinter у Лутца “Программирование на питон” том 1. В повествовании много воды, но материал достаточно хорошо разжеван. Рекомендую почитать и проработать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version