Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Python => Konuyu başlatan: muhittin_kaplan - 05 Haziran 2016, 01:45:09

Başlık: Python
Gönderen: muhittin_kaplan - 05 Haziran 2016, 01:45:09
tkinter, python tarafından desteklenen bir GUI yapma sistemi, butonlar labeller vb formları "kod" la oluşturabiliyorsunuz. bu açıdan bakıldığında pyqt,gtk gibi gelişmiş GUI araçlarından geri kalmış görünüyor. Visual Studio yu saymıyorum bile.

(daha geniş bilgi için http://www.istihza.com/beta/tk3/temel_bilgiler.html (http://www.istihza.com/beta/tk3/temel_bilgiler.html))

şimdi gelelim konumuza, bir proje için basit bir arayüz yapmam gerekti, tabi alışkanlıklar kolay terkedilemiyor. Bir döngü içerisinde Label ler oluşturmak bir buton eklemek vb işler için küçük bir örnek hazırladım.
Bu basit Örnekte bir çok çalışmayı beraber göreceksiniz

emeğe saygı :) (sağolsun arkadaşın biri yazdı, öğrenememişim şuana kadar.)

# -*- coding: utf-8 -*-
"""
Created on Sat Jun  4 12:21:57 2016

@author: muhittinkaplan
"""

from tkinter import *
from tkinter import messagebox

MyLabels=[]
top = Tk()
Degerler=[2,5,8,15,12,11,10,15,1,4,48,12,14,95,22,14]
index=0
myFrame=Frame(top,bg="yellow",relief="solid",borderwidth=3)
#myFrame.place(relx=0,rely=0,height=500,width=500)
myFrame.pack()

img = PhotoImage(file="btn1.gif")

for c in range (5):
    for r in range (8):

        index +=1
        MyLabels.append(Label(myFrame,text=str(r)+" " +str(c)+" Label",borderwidth=1,relief="solid",padx=5,pady=5,font="arial 16"))#,image=img
        MyLabels[index-1].grid(row=r,column=c,padx=1,pady=1)

myButton=Button(myFrame,text="Press",bg="blue",fg="white",command= lambda: MsgBox("Mesaj "+ str(10),MyLabels[1]),image=img,compound="left")
myButton.grid(row=11,column=11)



label = Label(myFrame,image = img)
label.grid(row = 12, column = 12)


def MsgBox(msg,control):
    messagebox._show("Başlık",msg)
    messagebox._show("Başlık",control["text"])

top.mainloop()

Başlık: Ynt: Python
Gönderen: boreas - 05 Haziran 2016, 11:00:26
Python çok sevdiğim bir dil ama arayüz için kod yazmaya bir türlü alışamadım. Harici arayüzleri kullanırsan onlarında kullanıcı tarafında çalışması için alıp kitaplıkları yükleyeceksin vs. Sonunda yine lazarus'a dönüyorum ister istemez :)
Başlık: Ynt: Python
Gönderen: muhittin_kaplan - 05 Haziran 2016, 11:05:57
Hocam pyqt ile projeyi bitirdim derken. Fedorada devamli problem yasadim. Ubuntu vinzort centos mint de gayet guzel calisirken fedora da olmadik zamanlarda glib hatasi aliyordum. Bende asıl olan neyse ona bakayim dedim. Merhaba tkinter oldu boylelikle.

LG-D723 cihazımdan Tapatalk kullanılarak gönderildi
Başlık: Ynt: Python
Gönderen: boreas - 05 Haziran 2016, 11:46:52
Projenin başındaysanız codetyphon ya da lazarus'u incelemenizide öneririm.
Başlık: Ynt: Python
Gönderen: microcozmoz - 05 Haziran 2016, 12:01:22
@boreas bahsettiğiniz çözümler GUI hazırlamak içinmi kullanılıyor?
Başlık: Ynt: Python
Gönderen: boreas - 05 Haziran 2016, 12:18:32
Yok hayır pascal programlama dilinin geliştirme arayüzleri. Eğer Delphi'yi duyduysan onun opensource olan çeşidi.
Başlık: Ynt: Python
Gönderen: muhittin_kaplan - 05 Haziran 2016, 13:39:21
Hocam lazarus codepython fedorada calisacak bir uygulama yazabilirmiyiz. Gui yi nasil hazirlayacagiz ?

LG-D723 cihazımdan Tapatalk kullanılarak gönderildi

Başlık: Ynt: Python
Gönderen: boreas - 05 Haziran 2016, 14:01:39
Lazarus zaten RAD studio. Yani yeni uygulama diyorsun form açılıyor edit kutuları vs. hepsi toolbarda var. Derlenip çalışır kod oluşturduğu için bütün linuxlarda sorunsuz çalışır aynı kodları windowsda derleyerek windows uygulamasıda yapabiliyorsunz. Ama dediğim gibi dil pascal.
Başlık: Ynt: Python
Gönderen: muhittin_kaplan - 05 Haziran 2016, 14:14:06
Dil problem degil ustad. Nasilsa cozeriz. For dur while dir ne olabilirki. Bir inceleyeyim. Isimiz gucumuz linux oldu bundan dolayi paketler arasinda problem olmayan winzort dahil sikintisiz calisan devamli 3parti modullere onlara bunlara ihtiyaci olmayan bir arac lazim.

LG-D723 cihazımdan Tapatalk kullanılarak gönderildi

Başlık: Ynt: Python
Gönderen: boreas - 05 Haziran 2016, 14:17:20
Çok özel bir durum olmadığı sürece lazarus fazlasıyla yeter. Codetyphon ve lazarus aynı yazılımlar tek fark codetyphon  yığınla bileşenle birlikte geliyor.
Başlık: Ynt: Python
Gönderen: engerex - 05 Haziran 2016, 16:52:20
 Python iyi güzel hoşta çok çok yavaş. Script.

Delphi pascalın görsel hali. Şuan Windows, OSX, iOS, Android için uygulama geliştirme imkanı var. Linux desteği gelmek üzere. Ücretli.
Lazarus Delphinin açık kaynak hali. Feepascaldan can alıyor.
FreePascal desteklediği işlemci ve işletim sistemleri için http://www.freepascal.org/ (http://www.freepascal.org/)

CodeThphon ise Lazarus üzerine kurulmuş ve içinde standart bileşenler haricinde bir çok bileşeni yüklü geldiği ücretsiz bir araç.

Eğer pascal biliyorsanız veya öğrenirseniz durmayın.
Başlık: Ynt: Python
Gönderen: Firzen - 06 Haziran 2016, 00:33:56
Alıntı yapılan: muhittin_kaplan - 05 Haziran 2016, 01:45:09
tkinter, python tarafından desteklenen bir GUI yapma sistemi, butonlar labeller vb formları "kod" la oluşturabiliyorsunuz. bu açıdan bakıldığında pyqt,gtk gibi gelişmiş GUI araçlarından geri kalmış görünüyor. Visual Studio yu saymıyorum bile.

(daha geniş bilgi için http://www.istihza.com/beta/tk3/temel_bilgiler.html (http://www.istihza.com/beta/tk3/temel_bilgiler.html))

şimdi gelelim konumuza, bir proje için basit bir arayüz yapmam gerekti, tabi alışkanlıklar kolay terkedilemiyor. Bir döngü içerisinde Label ler oluşturmak bir buton eklemek vb işler için küçük bir örnek hazırladım.
Bu basit Örnekte bir çok çalışmayı beraber göreceksiniz

  • bir fonksiyona kontrolü parametre geçmek
  • Döngü içerisinde widget oluşturmak.
  • Döngü içerisinde widget oluşturmak.
  • Widget Array Oluşturmak ve daha sonradan erişerek özelliklerini değiştirmek
  • buton yada label a img koymak
  • msgbox oluşturmak.
  • Frame oluşturmak, freame i form a eklemek ve oluşturulan bu frame e widget eklemek.

emeğe saygı :) (sağolsun arkadaşın biri yazdı, öğrenememişim şuana kadar.)

# -*- coding: utf-8 -*-
"""
Created on Sat Jun  4 12:21:57 2016

@author: muhittinkaplan
"""

from tkinter import *
from tkinter import messagebox

MyLabels=[]
top = Tk()
Degerler=[2,5,8,15,12,11,10,15,1,4,48,12,14,95,22,14]
index=0
myFrame=Frame(top,bg="yellow",relief="solid",borderwidth=3)
#myFrame.place(relx=0,rely=0,height=500,width=500)
myFrame.pack()

img = PhotoImage(file="btn1.gif")

for c in range (5):
    for r in range (8):

        index +=1
        MyLabels.append(Label(myFrame,text=str(r)+" " +str(c)+" Label",borderwidth=1,relief="solid",padx=5,pady=5,font="arial 16"))#,image=img
        MyLabels[index-1].grid(row=r,column=c,padx=1,pady=1)

myButton=Button(myFrame,text="Press",bg="blue",fg="white",command= lambda: MsgBox("Mesaj "+ str(10),MyLabels[1]),image=img,compound="left")
myButton.grid(row=11,column=11)



label = Label(myFrame,image = img)
label.grid(row = 12, column = 12)


def MsgBox(msg,control):
    messagebox._show("Başlık",msg)
    messagebox._show("Başlık",control["text"])

top.mainloop()



Muhittin Hocam güzel bir açıklama birde ben ek koyayım o zaman. Bilenler var mı bilmiyorum ama 1 2 ay önce microsoft firması XAMARIN STUDIO programını satın aldı ve yıllık 2000-3000 dolar gibi para istemeyide iptal edip tamamen ücretsiz yaptı. Kullanmak isteyen mutlaka başlasın derim.
Başlık: Ynt: Python
Gönderen: muhittin_kaplan - 07 Haziran 2016, 19:06:03
Hocam, xamarin ile linux a herhangibir program hazırlayamıyoruz diye biliyorum, yanlışmı biliyorum ?
Başlık: Ynt: Python
Gönderen: Firzen - 07 Haziran 2016, 20:18:06
Alıntı yapılan: muhittin_kaplan - 07 Haziran 2016, 19:06:03
Hocam, xamarin ile linux a herhangibir program hazırlayamıyoruz diye biliyorum, yanlışmı biliyorum ?
Tam olarak öyle değil hocam. Şimdi xamarin ile hem apple hem android aygıtlara kod yazılabiliyor bir üstüne yakında linux ekleyeceğinide okumuştum.
Başlık: Ynt: Python
Gönderen: muhittin_kaplan - 07 Haziran 2016, 21:36:31
linux gelene kadar fayton a devam.
Başlık: Ynt: Python
Gönderen: Firzen - 07 Haziran 2016, 23:07:35
Alıntı yapılan: muhittin_kaplan - 07 Haziran 2016, 21:36:31
linux gelene kadar fayton a devam.
Sizde haklısınız hocam :)