Форум сайта python.su
Здравствуйте.
Хочу написать свое меню программ для Линукс на Питоне, но не знаю с чего начать.
“Дайте ориентир пожалуйста”, а умным дяденькам прошу не издеваться, направляя изучать многотомные учебники - уже не раз с такими сталкивался , чуть ли не с Basic намекали начинать. Что бы не получилось как в том советском фильме - “только настоящие герои, идут в обход”. Хотел написать простое меню, а через десять лет написал свою ОСь… всем на “зло”.
Мне бы по простому:
- этот код создает окно
- этот код задает размеры
- этот убирает шапку (рамку)
- этот делает поп-апом
- этот создает фрейм (или как там)
- это алгоритм согласно строки в файле создает список разделов
и т.д.
Простите, сам занимаюсь 3d графикой, поэтому у меня все начинается с GUI, а потом уже логика программная - мне так удобней мыслить. У программистов наоборот - сначала программирование, а потом визуальное оформление. Я и на Питон обратил внимание после изучения Blender3d (BGE) - там он используется как язык скриптов для игрового движка… вот ссылка на мою мини иргу (WIP), что бы понятней было ( проект не коммерческий - не реклама) - The Quad Room mini game WIP
Если кто-то поможет, и я постараюсь не остаться в долгу - правда могу помочь только в 3d и BGE, ну и в GIMP (аналог Photoshop), или вектором. Но я все объясню по-простому, без излишних маневров. Могу и текстуры создать и некоторые модели. А интеллекта у программистов хватит что бы создать такой же или лучше Квад рум… вы же умища!
п.с. я при виде программного кода немного теряюсь, как кролик пред питоном, чуть что - могу и дрыснуть в утеки
Прикреплённый файлы: menu.png (326,3 KБ)
Офлайн
Можешь в Qt Designer'е сделать интерфейс, а потом подключить его в PyQt.
Офлайн
py.user.nextПростите, а функционала tkinter не хватит для этого? Там ведь тоже фреймы есть… если окну задать цвет белый и фрейму то же - вот этого и достаточно. И если во второй фрейм можно встроить алгоритм отображения значков - и этого достаточно. Если для кнопок можно отключить объемность и поставить значек - вот этого тоже достаточно.
Можешь в Qt Designer'е сделать интерфейс, а потом подключить его в PyQt.
Отредактировано NikolasM (Сен. 10, 2016 12:43:27)
Офлайн
from tkinter import * #этот код подключает библотеку tkinker root = Tk() #создает основное окно root["bg"] = "white" #задает окну белый цвет root.geometry('800x400+10+10') #свойства (размер и положение), поставишь вместо англ. "x" русское "х" - "х" и получишь root. overrideredirect (True) #отключает компоновку root.mainloop() #конец программы
Отредактировано NikolasM (Сен. 10, 2016 15:17:39)
Офлайн
NikolasMДа это для приложений, слепленных на коленке.
Простите, а функционала tkinter не хватит для этого?
NikolasMДа там фреймы пакуются на окно через одно место.
Там ведь тоже фреймы есть… если окну задать цвет белый и фрейму то же - вот этого и достаточно.
NikolasMТам ничего нельзя ставить никуда. Это же не PyQt, где всё может быть изменено.
Если для кнопок можно отключить объемность и поставить значек - вот этого тоже достаточно.
NikolasMДа да да и это тоже. А где же взять документацию к tkinter?
А где взять полный список парметров классов для tkinter
NikolasMМожешь и код писать http://zetcode.com/gui/pyqt4/
И сейчас я напишу страшную вещь - будучи немного 3d-шником (дизайнером), я не хочу использовать графическое дизайнерство того же Qt. Меня устраивает страшный редактор gedit - так интересней, когда понимаешь код, а не видишь только визуальный результат его.
NikolasMСтавится из репозиториев.
Да и pyQt это сторонняя библиотека - так тоже пока не интиресно.
NikolasMЭто же два притопа три прихлопа редактор. Кроме подсветки там пара плагинов есть и всё.
Меня устраивает страшный редактор gedit
Отредактировано py.user.next (Сен. 10, 2016 14:02:05)
Офлайн
py.user.next- пока не заню ни на коленках ни на верстаке, не могу и ответить… но начну с коленок
Да это для приложений, слепленных на коленке.
py.user.next- там фрейм прописывается как и положено, понять только как сделать горизонтальную компановку в режиме 2к1…
Да там фреймы пакуются на окно через одно место.
py.user.next-
Там ничего нельзя ставить никуда. Это же не PyQt, где всё может быть изменено.
img = BitmapImage('C:\\Wall\\Abstract_4396.jpg') button["image"] = img
py.user.next- да документацию нашел, правда она для меня немного не удобная, осталось разобраться на счет всех функций… тогда и буду говорить о недостатках
да да да и это тоже. А где же взять документацию к tkinter? А потом, когда найдёшь документацию (по сусекам наскребёшь пару документаций), окажется, что в tkinter'е просто нет каких-то элементарных вещей.
py.user.next- ну это уже не серьезно, если понимаешь код, это на уровне cut и paste… со стороны для “нормального” человека - быстрые и не понятные движения программиста.
Но разница между кодом и формой из дизайнера в том, что форму можно переделать в любой момент хоть как за несколько минут (перепаковать объекты, что-то перенести, поменять размещение, по-быстрому переписать кнопки, метки, назначить сочетания клавиш). В коде же ты один объект будет переделывать полчаса, включая все проверки, всё ли правильно, всё ли согласуется с его новым состоянием. Поэтому делают форму и либо подгружают её, либо через pyuic транслируют в код на питоне.
py.user.next- но остается при этом сторонней разработкой, а я пока хочу узнать функционал встроенной - а то не познав возможности tkinter, начну не дай Бог на него грешить, и только программистов смешить.
Ставится из репозиториев.
py.user.next- в два притопа три прихлопа если напишу программу, буду и вальс танцевать, и танго. А редактор нормальный - вертикального взлета я и не требую от него, но если бы была кнопка отдельная - “создать программу как ты задумал СРАЗУ”, было бы весьма интересно. И как мне кажется, лучше говорить - “о-го-го, у него даже есть подсветка синтаксиса, и нумерация строк, и подсветка парных скобок, подсветка активной строки! Крутень”.
Это же два притопа три прихлопа редактор. Кроме подсветки там пара плагинов есть и всё.
Отредактировано NikolasM (Сен. 10, 2016 15:31:05)
Офлайн
Подскажите еще пожалуйста, можно ли в окне tkinter устроить зону, за которую можно перетаскивать само окно?
Офлайн
from tkinter import * #ссылка на библиотеку GUI root = Tk() #основное окно def onFocusOut(event): #событие вне фокуса root.destroy() def init(): root["bg"] = "white" #цвет width = 700 #ширина height = 500 #высота x = root.winfo_screenwidth()/2 - width/2 #получения данных разрешения ширина y = root.winfo_screenheight()/2 - height/2 #получения данных разрешения высота root.geometry('%dx%d+%d+%d' % (width, height, x, y)) #само центрирование root.overrideredirect(True) #отключение компоновки root.bind('<FocusOut>', onFocusOut) if __name__ == '__main__': init() root.mainloop()
Отредактировано NikolasM (Сен. 10, 2016 17:16:54)
Офлайн
NikolasMя счаз открою вам не тайну - tkinter это обертка над TK/TCL библиотеками, а не собственный питонячий графический интерфейс. Да да там есть расширенные функции исключительно для питона, но сути это не меняет.
но остается при этом сторонней разработкой, а я пока хочу узнать функционал встроенной
Офлайн
JOHN_16
я счаз открою вам не тайну - tkinter это обертка над TK/TCL библиотеками, а не собственный питонячий графический интерфейс. Да да там есть расширенные функции исключительно для питона, но сути это не меняет.
Я к тому что вы как то уж странно подошли к определению критерия выбора
Офлайн