Vlákno názorů k článku Programovací jazyk TCL od stefan - Mna by zaujimalo, ako by vyzeral vyssie uvedeny...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 7. 2005 15:55

    stefan (neregistrovaný)
    Mna by zaujimalo, ako by vyzeral vyssie uvedeny priklad s checkboxzmi pri pouziti Python + tkinter. Ma niekto riesenie? Ja to skusim s pouzitim wxPython. Celkom sa mi to hodi, lebo wxWidgets poznam len z c++ takze sa pozriem na to, ako sa veci maju v Pythone.
  • 24. 7. 2005 9:37

    Petr Mach (neregistrovaný)
    Tady je upravene reseni pro TK a GTK v jednom pythonim zdrojaku.
    #!/bin/env python
    # -*- coding: utf-8 -*-
    
    checkNames = ['První', 'Druhý', 'Třetí', 'Čtvrtý', 'Pátý']
    
    # TK VARIANTA ############################################################
                                                                             #
    import Tkinter as tk                                                     #
                                                                             #
    # obsluha udalostí ------------------------------------------------------#
                                                                             #
    checks = []                                                              #
    def printStatus():                                                       #
        global checks                                                        #
        for name, status in checks:                                          #
            if  status.get():                                                #
                print name, "je zatžen."                                     #
            else:                                                            #
                print name, "není zatržen."                                  #
                                                                             #
    # vytvoření GUI ---------------------------------------------------------#
                                                                             #
    root = tk.Tk()                                                           #
                                                                             #
    frame = tk.Frame(root)                                                   #
    frame.pack()                                                             #
                                                                             #
    for name in checkNames:                                                  #
        var = tk.IntVar()                                                    #
        checks.append([name, var])                                           #
        widget = tk.Checkbutton(frame, text=name, variable=var)              #
        widget.pack()                                                        #
                                                                             #
    pButton = tk.Button(frame, text="Tiskni výsledky", command=printStatus)  #
    pButton.pack()                                                           #
                                                                             #
    # čekání na událost -----------------------------------------------------#
                                                                             #
    root.mainloop()                                                          #
                                                                             #
    #######################################################################
    
    # GTK VARIANTA ###########################################################
                                                                             #
    import gtk                                                               #
                                                                             #
    # obsluha udalostí ------------------------------------------------------#
                                                                             #
    def printStatus(button, checks):                                         #
        for check in checks:                                                 #
            if  check.get_active():                                          #
                print check.get_label(), "je zatržen."                       #
            else:                                                            #
                print check.get_label(), "není zatržen."                     #
                                                                             #
    # vytvoření GUI ---------------------------------------------------------#
                                                                             #
    vbox = gtk.VBox()                                                        #
                                                                             #
    checks = [ gtk.CheckButton(label=name) for name in checkNames ]          #
    for check in checks:                                                     #
        vbox.pack_start( check )                                             #
                                                                             #
    qButton = gtk.Button( label="Vytiskni stav" )                            #
    qButton.connect( 'clicked', printStatus, checks )                        #
    vbox.pack_start(qButton)                                                 #
                                                                             #
    win = gtk.Window()                                                       #
    win.connect( 'destroy', lambda x: gtk.main_quit() )                      #
    win.add(vbox)                                                            #
    win.show_all()                                                           #
                                                                             #
    # čekání na událost -----------------------------------------------------#
                                                                             #
    gtk.main()                                                               #
                                                                             #
    #######################################################################
    
  • 24. 7. 2005 12:43

    stefan (neregistrovaný)
    Dakujem za bleskovu reakciu. Vyzera to velmi jednoduche, hlavne v porovnani s wxPythonom. Zatial pripajam len link na celkom zaujimave dema vo wxPythone:

    http://www.pythonapocrypha.com/Chapter21/Chapter21.shtml