PyGTK-SpinButton 클래스
Spinner라고도하는 SpinnButton 위젯은 오른쪽에 위쪽 및 아래쪽 화살표가있는 gtk.Entry 위젯입니다. 사용자는 숫자 값을 직접 입력하거나 위쪽 및 아래쪽 화살표를 사용하여 증가 또는 감소 할 수 있습니다. gtk.SpinButton 클래스는 gtk.Entry 클래스에서 상속됩니다. 스피너에서 숫자 값의 범위와 단계를 제한 할 수있는 gtk.Adjustment 객체를 사용합니다.
SpinButton 위젯은 다음 생성자를 사용하여 생성됩니다.
sp = gtk.SpinButton(adj, climb_rate, digits)
여기서 adj는 gtk.Adjustment object controlling range, climb_rate 가속 계수 및 자릿수로 지정된 소수 자릿수입니다.
gtk.SpinButton 클래스에는 다음과 같은 메소드가 있습니다.
SpinButton.set_adjustment ()- "조정"속성을 설정합니다.
SpinButton.set_digits ()-이것은 스핀 버튼이 표시 할 소수 자릿수를 결정하는 값으로 "digits"속성을 설정합니다.
SpinButton.set_increments (step, page) − 마우스 왼쪽 버튼을 누를 때마다 증분이 적용되는 단계 값과 마우스 가운데 버튼을 누를 때마다 증분이 적용되는 페이지 값을 설정합니다.
SpinButton.set_range ()-이것은 스핀 버튼의 최소 및 최대 허용 값을 설정합니다.
SpinButton.set_value ()-스핀 버튼을 프로그래밍 방식으로 새 값으로 설정합니다.
SpinButton.update_policy () − 유효한 값은 gtk.UPDATE_ALWAYS 및 gtk.UPDATE_VALID입니다.
SpinButton.spin (direction, increment = 1)-지정된 방향으로 Spinner의 값을 증가 또는 감소시킵니다.
다음은 미리 정의 된 방향 상수입니다-
gtk.SPIN_STEP_FORWARD | step_increment로 앞으로 |
gtk.SPIN_STEP_BACKWARD | step_increment 뒤로 |
gtk.SPIN_PAGE_FORWARD | step_increment로 앞으로 |
gtk.SPIN_PAGE_BACKWARD | step_increment 뒤로 |
gtk.SPIN_HOME | 최소값으로 이동 |
gtk.SPIN_END | 최대 값으로 이동 |
gtk.SPIN_USER_DEFINED | 값에 증분 추가 |
SpinButton.set_wrap () — wrap이 True 인 경우 범위의 상한 또는 하한이 초과되면 스핀 버튼 값이 반대 한계로 래핑됩니다.
gtk.SpinButton 위젯은 다음 신호를 내 보냅니다.
변화 가치 | 키보드 동작으로 스핀 버튼 값이 변경 될 때 발생합니다. |
입력 | 값이 변경 될 때 발생합니다. |
산출 | 스핀 버튼 표시 값이 변경되면 발생합니다. 보고True 핸들러가 텍스트를 성공적으로 설정하고 추가 처리가 필요하지 않은 경우. |
가치 변화 | 이것은 스핀 버튼의 표시를 변경하는 설정이 변경 될 때 발생합니다. |
포장 | 이것은 스핀 버튼이 최대 값에서 최소값으로 또는 그 반대로 랩핑 한 직후에 방출됩니다. |
예
다음 예제는 간단한 Date Selector세 개의 SpinButton 위젯을 사용합니다. Day Selector는 조정 개체를 적용하여 1 ~ 31 사이의 값을 제한합니다. 두 번째 선택기는 1-12 개월 수입니다. 세 번째 선택기는 2000-2020 년 범위를 선택합니다.
코드 관찰-
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("SpinButton Demo")
self.set_size_request(300, 200)
self.set_position(gtk.WIN_POS_CENTER)
self.set_border_width(20)
vbox = gtk.VBox(False, 5)
hbox = gtk.HBox(True, 3)
lbl1 = gtk.Label("Date")
hbox.add(lbl1)
adj1 = gtk.Adjustment(1.0, 1.0, 31.0, 1.0, 5.0, 0.0)
spin1 = gtk.SpinButton(adj1, 0, 0)
spin1.set_wrap(True)
hbox.add(spin1)
lbl2 = gtk.Label("Month")
hbox.add(lbl2)
adj2 = gtk.Adjustment(1.0, 1.0, 12.0, 1.0, 5.0, 0.0)
spin2 = gtk.SpinButton(adj2, 0, 0)
spin2.set_wrap(True)
hbox.add(spin2)
lbl3 = gtk.Label("Year")
hbox.add(lbl3)
adj3 = gtk.Adjustment(1.0, 2000.0, 2020.0, 1.0, 5.0, 0.0)
spin3 = gtk.SpinButton(adj3, 0, 0)
spin3.set_wrap(True)
hbox.add(spin3)
frame = gtk.Frame()
frame.add(hbox)
frame.set_label("Date of Birth")
vbox.add(frame)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
PyApp()
gtk.main()
실행시 위의 코드는 다음과 같은 출력을 생성합니다.