1

スライダー バーの値の出力に問題があります。そのためにスライダーの下にボタンを作成しましたが、押す前に印刷され、押しても印刷されません。

スライダーを水平にするという問題もあります。「orient=HORIZONTAL」であることはわかっており、クラスにないときは機能しますが、クラスにあると問題が発生します。

これがコードです。いつものように、どうもありがとうございます!! :)

import Tkinter as tki # Tkinter -> tkinter in Python 3
import tkMessageBox


class GUI(tki.Tk):
        def __init__(self):
                tki.Tk.__init__(self)
                self.wm_title("Menu Title")
                RWidth=500
                RHeight=300
                self.geometry(("%dx%d")%(RWidth,RHeight))
                menubar = tki.Menu(self)

                # create a pulldown menu, and add it to the menu bar
                menu0 = tki.Menu(menubar, tearoff=0)
                menu0.add_command(label="Run Slider", command=self.slider_prompt)
                menu0.add_separator()
                menu0.add_command(label="Exit", command=self.quit)

        menubar.add_cascade(label="Slider", menu=menu0)

                # display the menu
                self.config(menu=menubar)

        def slider_prompt(self, msg='This is a slider'):
            slider_window= self.top = tki.Toplevel(self)
            slider_window.title("Slider Title")
            RWidth=300
            RHeight=200
            slider_window.geometry(("%dx%d")%(RWidth,RHeight))

            label0 = tki.Label(slider_window, text=msg)
            label0.pack()

            slider = tki.Scale(slider_window, from_=100, to=1000) # have to make horizontal
            slider.pack()

            #put button here that starts the program (pass the slider value)
            button_cheat = tki.Button(   slider_window, text='Print Value', command=self.print_slide_value(slider.get())   )
            button_cheat.pack()

            button_close = tki.Button(slider_window, text='Exit', command=lambda: self.top.destroy())
            button_close.pack()


    def print_slide_value(self, slider_value):
        print slider_value

gui = GUI()
gui.mainloop()
4

1 に答える 1