Python program calistirildiginda init islemlerini nerde yapabilirim?

Başlatan z, 23 Nisan 2020, 17:46:21

z

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?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

robikod

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.

z

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.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

robikod

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. Deneyebilirsiniz belki.

z

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()
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mehmet

Ş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.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

fide

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:
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

muhittin_kaplan

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

z

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.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

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 ?

z

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.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com