Menü üzerinden yapılan seçim form üzerime yazdırılması

Merhaba arkadalşar, halledemediğim bir problem var, yardımcı olursanız memnun Birden fazla python dosyası üzerinde işlem yapıyorum.

aForm.py - Formun oluşturuluyor
onMenu.py - Menüler oluşturuluyor
onExitPrg.py - Programdan çıkış

Program çalıştığında, menüden yaptığım seçimin form üzerindeki Label de yazmasını istiyorum.
Yaptığım bir çok denemede başarılı olamadım.
Umarım bu sorunun bir çözümü vardır.
İyi çalışmalar.

Program linki ;

Merhaba,

Aşağıda, kodlarınızın yeniden düzenlenmiş halini göreceksiniz. Bazı ufak değişiklikler yaptım, inceleyin isterseniz.

aForm.py

import os
import sys
import tkinter as tk

from tkinter import *
from tkinter import messagebox
from onMenu import anaMenu


def mainMenu():
    root = Tk()
    root.title('Program adı...')
    root.geometry('{}x{}'.format(400, 200))    
    root.minsize(200, 100)
    secLabel = Label(root, text="Menü seçimi.:")
    secLabel.grid(sticky='W')
    anaMenu(label=secLabel)  # Label'i anaMenu'ye argüman olarak ekleyin.
    root.mainloop()


if __name__ == '__main__':
    mainMenu()

onMenu.py

from tkinter import *
from onExitPrg  import quit_program

  
class anaMenu(Frame):
    def __init__(self, label):
        super().__init__()
        self.label = label  # Argümanı bir örnek niteliği haline getirin.
        self.sec = IntVar()
        self.sec.set(2)
        self.menuler()
  
    def menuler(self):
        menuEkle = Menu(self.master)
        self.master.config(menu=menuEkle)
        kapat_item = Menu(menuEkle, tearoff=0)
        kapat_item.add_command(label='Kapat', command=quit_program)
        menuEkle.add_cascade(label='Çıkış', menu=kapat_item)        
        dosya_item = Menu(menuEkle, tearoff=0)
        menuEkle.add_cascade(label = 'Seçiminiz', menu=dosya_item)
        dosya_item.add_radiobutton(
            label='Bir',  
            variable=self.sec, 
            value=1,  
            command=self.set_label
        )
        dosya_item.add_radiobutton(
            label='İki',  
            variable=self.sec, 
            value=2,  
            command=self.set_label
        )
        dosya_item.add_radiobutton(
            label='Üç',   
            variable=self.sec, 
            value=3,  
            command=self.set_label
        )
        dosya_item.add_radiobutton(
            label='Dört', 
            variable=self.sec, 
            value=4,  
            command=self.set_label
        )
        
    def set_label(self):
        self.label.configure(text="Menü seçimi.: " + str(self.sec.get()))

onExitPrg.py dosyasında değişiklik yapmadım.

1 Beğeni

Teşekkür ederim.
Denedim, gönderdiğiniz kod çalışıyor. Şimdi bu bilgileri asıl programıma aktarmaya geldi.
Programın ana kısmında daha az kod görünsün diye parçalara ayırmaya çalışıyorum ama bu pek de mümkün görünmüyor (olduğu kadar).
Daha öğreneceğim çok şey var.

Gayet de mümkün. Dosyalardaki değişkenlerin değiştirilmesi gerektiğinde bir önceki mesajımda gösterdiğim yöntemi uygulayabilirsiniz.

1 Beğeni