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?
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.
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.
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.
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()
Ş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.
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:
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
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.
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 ?
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.