Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Python => Konuyu başlatan: z - 23 Nisan 2020, 17:46:21

Başlık: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: z - 23 Nisan 2020, 17:46:21
Mesela Delphi ile yazilan program calistirildiginda, formcreate fonksiyonuna yazdigimiz satirlar
kendiliginden calisiyor.

Bu sayede init islemlerini yazmak icin guzel bir fonksiyon.

Phytonda benzer islemi nasil yaparim?
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: robikod - 23 Nisan 2020, 17:49:22
Delphi kullanmadığım için sorunuzu anlayamadım,

Sorunuz şu şekilde mi python programı çalıştığında (bu bir arayüz mü mesela) ilk öncelikle yapılacak işlemleri nasıl kontrol edebilrim ?
Biraz detaylandırırsanız yardımcı olabilirim.
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: z - 23 Nisan 2020, 18:02:39
Python programi calistirdigimda ilk asamada hic bir seyi tiklamasamda calisacak bir fonksiyon ariyorum.

Mesela su anda radiobuttonlardan birisinin default olarak secili olmasi lazim ama beceremedim.
Radiobuttonlarimin hepsi de secilmemis bekliyor.

Bahsettigim fonksiyonun adini bilirsem o fonksiyon altina yazacagim kod ile 1 nolu radiobuttonu tikla diyebilirim belki.
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: robikod - 23 Nisan 2020, 18:21:38
Alıntı yapılan: z - 23 Nisan 2020, 18:02:39Python programi calistirdigimda ilk asamada hic bir seyi tiklamasamda calisacak bir fonksiyon ariyorum.

Mesela su anda radiobuttonlardan birisinin default olarak secili olmasi lazim ama beceremedim.
Radiobuttonlarimin hepsi de secilmemis bekliyor.

Bahsettigim fonksiyonun adini bilirsem o fonksiyon altina yazacagim kod ile 1 nolu radiobuttonu tikla diyebilirim belki.


Şöyle yapabiliriz , radiobuttonlara default değer verebiliriz. Bu şekilde ilk açıldığında seçili bir değeri olur. Bu konuda çalışan bir program için şu şekilde bir öneri var. Link (https://stackoverflow.com/questions/42845090/give-a-radio-button-a-default-value-in-tkinter-python). Deneyebilirsiniz belki.
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: z - 23 Nisan 2020, 18:27:38
Su ana kadar yapabildiklerim sunlar. Fonksiyon iclerini oylesine doldurdum.

import tkinter as tk
from tkinter.ttk import Radiobutton

root = tk.Tk()
root.title("3D Printer")
root.geometry("1024x840+0+0")

B1_state = True
B2_state = True


def HomeButtonClick():
    print("  3D printer")


def RunButtonClick():
    print("  3D printer")

def OpenFile():
    name=askopenfilename()

def About():
    print("  3D printer")

def XPButtonClick():
    print("  3D printer")

def XNButtonClick():
    print("  3D printer")

def YPButtonClick():
    print("  3D printer")

def YNButtonClick():
    print("  3D printer")

def ZPButtonClick():
    print("  3D printer")

def ZNButtonClick():
    print("  3D printer")

def EPButtonClick():
    print("  3D printer")

def ENButtonClick():
    print("  3D printer")

def sel():
    print("  3D printer")


##############################################################
#  Menu Bar
##############################################################

menu = tk.Menu(root)
root.config(menu=menu)

filemenu = tk.Menu(menu)
menu.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="Open", command=OpenFile)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit())

helpmenu = tk.Menu(menu)
menu.add_cascade(label="Help", menu=helpmenu)
helpmenu.add_separator()
helpmenu.add_command(label="About...", command=About)

Runbutton = tk.Button(root, text="Run G Code", bg="white", height=3, width=10, font=("Helvetica", 20, 'bold'), command=RunButtonClick)
Runbutton.place(x=50, y=700)

Homebutton = tk.Button(root, text="HOME", bg="white", height=3, width=10, font=("Helvetica", 20, 'bold'), command=HomeButtonClick)
Homebutton.place(x=275, y=700)

XPbutton = tk.Button(root, text="X+", fg="red", height=1, width=5, font=("Helvetica", 20, 'bold'), command=XPButtonClick)
XPbutton.place(x=500, y=700)

XNbutton = tk.Button(root, text="X-", fg="blue", height=1, width=5, font=("Helvetica", 20, 'bold'), command=XNButtonClick)
XNbutton.place(x=500, y=764)

YPbutton = tk.Button(root, text="Y+", fg="red", height=1, width=5, font=("Helvetica", 20, 'bold'), command=YPButtonClick)
YPbutton.place(x=600, y=700)

YNbutton = tk.Button(root, text="Y-", fg="blue", height=1, width=5, font=("Helvetica", 20, 'bold'), command=YNButtonClick)
YNbutton.place(x=600, y=764)

ZPbutton = tk.Button(root, text="Z+", fg="red", height=1, width=5, font=("Helvetica", 20, 'bold'), command=ZPButtonClick)
ZPbutton.place(x=700, y=700)

ZNbutton = tk.Button(root, text="Z-", fg="blue", height=1, width=5, font=("Helvetica", 20, 'bold'), command=ZNButtonClick)
ZNbutton.place(x=700, y=764)

EPbutton = tk.Button(root, text="E+", fg="red", height=1, width=5, font=("Helvetica", 20, 'bold'), command=EPButtonClick)
EPbutton.place(x=800, y=700)

ENbutton = tk.Button(root, text="E-", fg="blue", height=1, width=5, font=("Helvetica", 20, 'bold'), command=ENButtonClick)
ENbutton.place(x=800, y=764)

var = tk.IntVar()

R1 = Radiobutton(root, text="0.1 mm", variable=var, value=1, command=sel)
R1.pack( anchor = tk.W )
R1.place(x=930, y=700)

R2 = Radiobutton(root, text="1.0 mm", variable=var, value=2, command=sel)
R2.pack( anchor = tk.W )
R2.place(x=930, y=750)

R3 = Radiobutton(root, text="10  mm", variable=var, value=3, command=sel)
R3.pack(anchor =tk.W)
R3.place(x=930, y=800)

MesajLabel = tk.Label(root, text="3D printer ready                              ", fg="green", font=("Helvetica", 20, 'bold'))
MesajLabel.place(x=50, y=650)

root.mainloop()
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: mehmet - 23 Nisan 2020, 20:29:36
Şimdilik sıkıntı görülmüyor...

def OpenFile():
    #name=askopenfilename()
try:
name = open("dosya.txt", "r")
name.close()
print("Dosya var.\n\r")
except:
print("Dosya Yok")

https://www.geeksforgeeks.org/radiobutton-in-tkinter-python/

Ek:
İnit işlemeli için...
https://www.guru99.com/learn-python-main-function-with-examples-understand-main.html
https://www.journaldev.com/17752/python-main-function

İlk sütunda olan komutlar direkt çalışır.
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: fide - 24 Nisan 2020, 10:40:55
Alıntı yapılan: mehmet - 23 Nisan 2020, 20:29:36Şimdilik sıkıntı görülmüyor...

def OpenFile():
    #name=askopenfilename()
try:
name = open("dosya.txt", "r")
name.close()
print("Dosya var.\n\r")
except:
print("Dosya Yok")

https://www.geeksforgeeks.org/radiobutton-in-tkinter-python/

Ek:
İnit işlemeli için...
https://www.guru99.com/learn-python-main-function-with-examples-understand-main.html
https://www.journaldev.com/17752/python-main-function

İlk sütunda olan komutlar direkt çalışır.

Yukardaki işlem başka bir yöntemle daha kolay elde ediliyor.
Import os
İf os.exists(dosyaAdiVeYolu):
   işlemler
Else:
   İşlemler

Büyük harflere takılmayın. Telefon otomatik düzeltiyor, yoruldum düzeltmekten.  :du:  :du:
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: muhittin_kaplan - 24 Nisan 2020, 13:03:36
Init de yaparsın.
Siz constructor  fonksiyon/metod vs i soruyorsunuz hocam.(bircok oop dilde vardir)

Class falancaSinif(falancadan inheritEt)
    def __init__(self)#self delphide ki this. Kendini temsil eder.
      print("Class baslatildi")
    def toplama()
      ...

Ama yine yazayim mümkünse tkinter kullanmaktan kacininiz. Ilerde başınıza bela olur. Yapılabiliyorsa pyqt yada pyside2 yukleyin
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: z - 25 Nisan 2020, 07:50:08
Program uzamaya baslayinca kodlari parcalara bolmek istiyorum.

Main.py icinde

from Motion import Motion

Motion.SetX(1)

yazdim.

--------------
Motion.py icine

def sendSPI(Data):
    print(Data)

class Command:
    def SetX(self, x):
        sendSPI(x)
    def SetY(self,x):
        sendSPI(x)

Motion = Command


yazdim.

Main programini calistirinca

Motion.SetX(1)
TypeError: SetX() missing 1 required positional argument: 'x'

hatasi aliyorum. Nerde hata yapiyorum?

Neyse cok basit bir hata yapiyormusum

Motion = Command()
yazmaliymisim.
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: muhittin_kaplan - 25 Nisan 2020, 15:32:19
oradaki command sınıfı içerisine
def __init__() adında bir metod eklerseniz eger, Motion=Command() dediğiniz anda çalışır. Ayrıca sendSPI neden sınıf dşında ?
Başlık: Ynt: Python program calistirildiginda init islemlerini nerde yapabilirim?
Gönderen: z - 25 Nisan 2020, 15:49:32
Acemiye neden diye sorma. O zaman akli dengen nasildi hic hatirlamiyorum.

Class yapisina gerek olmadigini gorup fonksiyonlarin her birini ayri ayri tanimlamaya karar verdim ve oyle yaptim.