Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Python

Başlatan muhittin_kaplan, 05 Haziran 2016, 01:45:09

muhittin_kaplan

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)

ş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()


boreas

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 :)

muhittin_kaplan

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

boreas

Projenin başındaysanız codetyphon ya da lazarus'u incelemenizide öneririm.

microcozmoz

@boreas bahsettiğiniz çözümler GUI hazırlamak içinmi kullanılıyor?
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

boreas

Yok hayır pascal programlama dilinin geliştirme arayüzleri. Eğer Delphi'yi duyduysan onun opensource olan çeşidi.

muhittin_kaplan

Hocam lazarus codepython fedorada calisacak bir uygulama yazabilirmiyiz. Gui yi nasil hazirlayacagiz ?

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


boreas

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.

muhittin_kaplan

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


boreas

Ç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.

engerex

 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/

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.

Firzen

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)

ş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.
University of Idaho                                  Postdoctoral Fellow

muhittin_kaplan

Hocam, xamarin ile linux a herhangibir program hazırlayamıyoruz diye biliyorum, yanlışmı biliyorum ?

Firzen

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.
University of Idaho                                  Postdoctoral Fellow

muhittin_kaplan

linux gelene kadar fayton a devam.