Найти - Пользователи
Полная версия: Как сделать графический интерфейс с функцией ввода-вывода?
Начало » Python для новичков » Как сделать графический интерфейс с функцией ввода-вывода?
1
GameStar
Всем привет. Делаю свою первую, учебную игру “Угадай число”. Код игры написал по самоучителю, но там только непосредственно “техническая” составляющая, скажем так, а визуальной (самого интерфейса игры) - там нет. Как импортировать и работать с 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 ('Загаданное число меньше')
Ignat
В kivy не пробовал?
PEHDOM
к этому Гуи прикрутить невозможно. Хотя ради занудства стоит сказать что таки возможно, но усилия по “прикручиванию” будут несопоставимы с написанием кода заново уже с использованием ГУИ-шных библиотек.
Но это на данном этапе , когда ваша программа состоит из 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.
GameStar
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.
PEHDOM
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
где можно поискать не очень сложные задачки по питону, чтобы попрактиковаться?
Вот честно не знаю. Но, ИМХО, лучше практивоаться на реальных задачах. Вот поставь себе задачу, например написать медиплеер или хоть морской бой или даже банальную показывалку прогноза погоды в твоем городе, только без дураков, со всеми менюшками, и прочим и пиши. Я когда писал свою первую более-менее “серьезную” программу, узнал в разы больше чем за все время решения “задачек”.

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

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

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

Rafik
Неплохо описаны основы работы с tkinter у Лутца “Программирование на питон” том 1. В повествовании много воды, но материал достаточно хорошо разжеван. Рекомендую почитать и проработать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB