Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 11, 2016 00:59:34

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Меню программ на Python

NikolasM
и стабильности tkinter чем Qt - может миф
Давным давно когда я смотрел что использовать для GUI то отказался от Qt. Отказался потому что Qt это не GUI библиотека, это огромная куча всего. И сеть и сокеты и коннекты к базам, а с сишной стороны свой компилятор, своя оболочка для разработки и много чего еще. На мой вкус это противоречит принципу что библиотека должна хорошо решать только свою задачу. Правда GUI у нас немного. Делали на wxpython, а потом практически полностью ушли на web.
Сейчас смотрю на это давнее решение, и думаю оно было правильное.



Офлайн

#2 Сен. 11, 2016 01:53:47

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

Меню программ на Python


doza_and
Делали на wxpython, а потом практически полностью ушли на web.
- на какой еще web? Да и как то запутали меня немножко… такой вопрос - какой GUI легче в освоении: PyGTK, PyQt, wxpython или tkinter? Или держатся пока за tkinter?

Офлайн

#3 Сен. 11, 2016 02:28:34

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Меню программ на Python

NikolasM
Или держатся пока за tkinter?
Нужно подержаться пока, пока не натрахаешься вдоволь. PyGTK и wxPython застыли в своём развитии. У них общая проблема - когда питон кардинально обновляется, они за ним не успевают, причём не успевают даже в перспективе (проходят годы, а они заморожены). А из-за них на старом питоне сидеть не будешь, потому что старый питон имеет много недочётов прямо в ядре языка.
Теперь про tkinter и PyQt: tkinter - это, короче, такая деревянная ложка для похлёбки, а PyQt - это полный ресторанный набор. Если тебе надо тёлке крем-брюле пропихнуть, то ты никак не можешь положить там рядом большую грубую деревянную ложку, которая ещё и выстрогана вручную, там надо положить маленькую блестящую ложечку, специальную для крем-брюле.

NikolasM
- на какой еще web?
Он имеет в виду, что у них там заходишь на сайт и в нём всё приложение работает со всякими там Javascript, а само оно размещается в Интернете или каком-нибудь локальном сервере. Короче, Jenkins типа, включаешь его и он открывает у тебя же порт, а ты потом на себя заходишь через браузер и там всякие кнопки для управления Jenkins'ом и настройки. Но основная фишка его в том, что его можно разместить где угодно в сети.



Отредактировано py.user.next (Сен. 11, 2016 02:31:00)

Офлайн

#4 Сен. 11, 2016 03:56:54

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

Меню программ на Python

py.user.next
PyQt - это полный ресторанный набор
- да ладно, попробую все таки ложкой деревяной
вот чего уже получилось

 from tkinter import * #ссылка на библиотеку GUI
root = Tk() #основное окно
def onFocusOut(event): #событие вне фокуса
    root.destroy()
def outgo(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) #комнада на закрытие окна при дефокусе
fra = Frame(root,width=200,height=500,bg="grey") #создает фрейм
fra1 = Frame(root,width=490,height=500,bg="yellow") #создает фрейм
but = Button(root,text="X") #создает кнопку
fra.pack(side=LEFT)
fra1.pack(side=RIGHT)
but.pack()
but.bind("<Button-1>",outgo)
if __name__ == '__main__':
    init()
root.mainloop()

только как вставить в первый фрейм внизу две кнопки? И с этим дифокусом как быть, наверное это функция не пременима после отключения компоновки, какой же иной способ?

Офлайн

#5 Сен. 11, 2016 19:13:58

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Меню программ на Python

Винда?

Офлайн

#6 Сен. 12, 2016 00:07:54

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

Меню программ на Python

4kpt_IV
Винда?
Да не Винда, Линукс… меню для Линукса.

Офлайн

#7 Сен. 13, 2016 10:44:30

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2822
Репутация: +  185  -
Профиль   Отправить e-mail  

Меню программ на Python

> - да ладно, попробую все таки ложкой деревяной

А от нас то ты чАго хочешь? Ты же всё уже для себя решил.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#8 Сен. 13, 2016 15:06:06

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

Меню программ на Python

Rodegast
А от нас то ты чАго хочешь? Ты же всё уже для себя решил.
С дураками не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

- я для себя решил найти помощь в программировании, ведь в пользование той или иной библиотекой GUI не стоит вопрос. Самое загвоздка программирования в алгоритмах связанных с формами. Вот это конек программистов. И будь то Qt или tkinter, какая разница, алгоритм одинаков?
Чаго хочу? Помощи в правильном понимании как устроить такую программу по формам и принципам программирования алгоритмов - то есть теорию, как она должна быть устроена. А потом попробую найти ответы на такую теорию. Ведь как мне кажется, каждый программист сначала в голове лепит такую программу, правильно её устраивает, а потом уже кодом.

С дураками не спорю, истину не ищу.
- и что за каламбур такой? Если ты не ищешь истину, ты такой же дурак, уж простите и вы меня заранее. Тем более вроде бы tkinter используют и ваши форумчане.
——————————————————————————————————————————————————————————————
fer0m
Я совсем недавно начал изучать Python, да и в целом программирование.

FishHook
Если вы хотите изучать программирование - изучайте программирование, а не окошки и кнопочки. Вам надо знать язык программирования, алгоритмы, шаблоны проектирования, понимать разные парадигмы и разбираться в современных технологиях и фреймворках, владеть неким минимумом сопутствующих знаний (базы данных, сетевые протоколы, многопоточность и прочие и тому подобное).
—————————————————————————————————————————————————————————————–
Volobuev_Ilya
Отвечу кратко. Хотите делать приложения с кнопочками - используйте библиотеку Tkinter. Например, вот так можно сделать окно с кнопкой:

# -*- coding: utf-8 -*-
from Tkinter import * # импортирую библиотеку Tkinter
def F():
print(“На кнопку нажали”)
root=Tk() # по традиции главное окно называть надо root
b=Button(root) # создаю кнопку
b=“Кликни на меня” # устанавливаю текст на кнопке
b.bind(“<Button-1>”,F) # назначаем реакцию на событие <Button-1> (нажатие левой кнопки мыши) функцию F
b.pack() # чтобы кнопка отображалась
root.mainloop() # чтобы все работало

Вообще, Tkinter позволит создавать быстро и просто любые приложения. Поэтому не бойтесь - идите вперед и постигайте горизонты мастерства. Удачи в этом деле!
——————————————————————————————————————————————————————————–

Действительно, с “дураками” луше не спорить… но их получается очень много на этом форуме - http://python.su/forum/topic/29455/

Отредактировано NikolasM (Сен. 13, 2016 15:08:42)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version