Ruby / Tk - Kaydırma Çubuğu Widget'ı

Açıklama

Bir Scrollbar kullanıcının, içeriği genellikle mevcut ekran alanında gösterilebilecek olandan çok daha büyük olan başka bir widget'ın tüm parçalarını görmesine yardımcı olur.

Bir kaydırma çubuğu, kaydırma çubuğunun her iki ucunda birer tane ve kaydırma çubuğunun orta kısmında birer kaydırıcı olmak üzere iki ok görüntüler. Kaydırıcının konumu ve boyutu, ilgili pencerede belgenin hangi bölümünün göründüğünü belirtir.

Sözdizimi

İşte bu widget'ı oluşturmak için basit bir sözdizimi -

TkScrollbar.new {
   .....Standard Options....
   .....Widget-specific Options....
}

Standart Seçenekler

  • activebackground
  • highlightbackground
  • orient
  • takefocus
  • background
  • highlightcolor
  • relief
  • troughcolor
  • borderwidth
  • highlightthickness
  • repeatdelay
  • cursor
  • jump
  • repeatinterval

Bu seçenekler önceki bölümde açıklanmıştır.

Widget'a Özgü Seçenekler

Sr.No. Seçenekler ve Açıklama
1

activerelief => Dize

Varsa, aktif olan öğeyi görüntülerken kullanılacak kabartmayı belirtir . Aktif öğe dışındaki öğeler her zaman yükseltilmiş bir kabartma ile görüntülenir.

2

command => Dize

Kaydırma çubuğuyla ilişkilendirilmiş widget'taki görünümü değiştirmek için çağrılacak bir geri aramayı belirtir. Bir kullanıcı kaydırma çubuğunu kullanarak bir görünüm değişikliği talep ettiğinde, geri arama çağrılır.

3

elementborderwidth => Tamsayı

Kaydırma çubuğunun iç öğelerinin etrafına çizilen kenarlıkların genişliğini belirtir.

4

width => Tamsayı

Kaydırma çubuğu penceresinin istenen dar boyutunu, varsa 3-B kenarlığı dahil etmeden belirtir. Dikey kaydırma çubukları için bu genişlik, yatay kaydırma çubukları için bu yükseklik olacaktır.

Kaydırma Çubuğunun Öğeleri

Kaydırma çubuğu, kaydırma çubuğu yöntemlerinde belirtilen beş öğeyi görüntüler -

  • arrow1 - Kaydırma çubuğundaki üst veya sol ok.

  • trough1 - Kaydırıcı ve ok 1 arasındaki bölge.

  • slider - İlişkili widget'ta neyin göründüğünü gösteren dikdörtgen.

  • trough2 - Kaydırıcı ve ok2 arasındaki bölge.

  • arrow2 - Kaydırma çubuğundaki alt veya sağ ok.

Kaydırma Çubuğunu Düzenleme

Bir kaydırma çubuğunun içeriğini değiştirmek için aşağıdaki yararlı yöntemler -

  • activate(?element?)- Öğe tarafından belirtilen öğeyi etkin olarak işaretler, bu da öğenin belirttiği gibi görüntülenmesine neden olur.activebackground ve activereliefseçenekler. Bu komutla anlaşılan tek öğe değerleriarrow1, sliderveya arrow2.

  • delta(deltaX, deltaY) - Kaydırma çubuğu ayarındaki, kaydırıcı konumundaki belirli bir değişikliğe karşılık gelen kısmi değişikliği gösteren gerçek bir sayı döndürür.

  • fraction(x, y)- x ve y tarafından verilen noktanın kaydırma çubuğunun çukur alanında nerede olduğunu belirten, 0 ile 1 arasında gerçek bir sayı döndürür. 0 değeri oluğun üst ya da soluna karşılık gelir, 1 değeri alt ya da sağa karşılık gelir, 0,5 ortaya karşılık gelir ve bu böyle devam eder.

  • get - Kaydırma çubuğu ayarlarını, öğeleri en son ayarlanan yöntemin bağımsız değişkenleri olan bir liste biçiminde döndürür.

  • identify(x, y)- x ve y (ok1 gibi) tarafından verilen noktanın altındaki öğenin adını veya nokta kaydırma çubuğunun herhangi bir öğesinde yer almıyorsa boş bir dizeyi döndürür. X ve y, kaydırma çubuğu widget'ına göre piksel koordinatları olmalıdır.

  • set(first, last)- Bu komut, kaydırma çubuğuna pencere aracındaki geçerli görünüm hakkında bilgi vermek için kaydırma çubuğunun ilişkili pencere öğesi tarafından çağrılır. Komut, her biri 0 ile 1 arasında gerçek bir kesir olan iki bağımsız değişken alır. Kesirler, belgenin ilişkili pencere öğesinde görünen aralığını tanımlar.

Etkinlik Bağlamaları

Ruby / Tk, kaydırma çubukları için onlara aşağıdaki varsayılan davranışı sağlayan sınıf bağlamalarını otomatik olarak oluşturur. Davranış, dikey ve yatay kaydırma çubukları için farklıysa, yatay davranış parantez içinde açıklanır -

  • Ok1 üzerinde düğme 1'e basmak, ilişkili widget'taki görünümün bir birim yukarı (sola) kaymasına neden olur, böylece belge bir birim aşağı (sağa) hareket ediyormuş gibi görünür. Düğme basılı tutulursa, eylem otomatik olarak tekrarlanır.

  • Trough1 üzerinde düğme 1'e basmak, ilişkili widget'taki görünümün bir ekran yukarı (sola) kaymasına neden olur, böylece belge bir ekran dolusu aşağı (sağa) hareket ediyormuş gibi görünür. Düğme basılı tutulursa, eylem otomatik olarak tekrarlanır.

  • Kaydırıcının üzerindeki düğme 1'e basmak ve sürüklemek, görünümün kaydırıcıyla birlikte sürüklenmesine neden olur. Atlama seçeneği doğruysa, görünüm kaydırıcıyla birlikte sürüklenmez; yalnızca fare düğmesi bırakıldığında değişir.

  • Trough2 üzerinde düğme 1'e basmak, ilişkili widget'taki görünümün bir ekran dolusu aşağı (sağa) kaymasına neden olur, böylece belge bir ekran dolusu yukarı (sola) hareket eder. Düğme basılı tutulursa, eylem otomatik olarak tekrarlanır.

  • Ok2 üzerinde düğme 1'e basmak, ilişkili widget'taki görünümün bir birim aşağı (sağa) kaymasına neden olur, böylece belge bir birim yukarı (sola) hareket ediyormuş gibi görünür. Düğme basılı tutulursa, eylem otomatik olarak tekrarlanır.

  • Düğme 2 oluk veya kaydırıcı üzerinde basılırsa, görünümü fare konumuna karşılık gelecek şekilde ayarlar; fareyi düğme 2 ile aşağı sürüklemek, görünümün fare ile sürüklenmesine neden olur. Oklardan birinin üzerinde düğme 2'ye basılırsa, düğme 1'e basılmasıyla aynı davranışı gösterir.

  • Kontrol tuşu aşağıdayken düğme 1'e basıldığında, fare arrow1 veya trough1 üzerindeyse, görünüm belgenin en üstüne (soluna) geçer; fare arrow2 veya trough2 üzerindeyse, görünüm belgenin en altına (sağına) geçer; fare başka bir yerdeyse, düğmeye basmanın bir etkisi yoktur.

  • Dikey kaydırma çubuklarında Yukarı ve Aşağı tuşları, sırasıyla ok1 ve ok2 üzerindeki fare tıklamalarıyla aynı davranışa sahiptir. Yatay kaydırma çubuklarında bu tuşların hiçbir etkisi yoktur.

  • Dikey kaydırma çubuklarında Control-Up ve Control-Down, sırasıyla trough1 ve trough2 üzerindeki fare tıklamalarıyla aynı davranışa sahiptir. Yatay kaydırma çubuklarında bu tuşların hiçbir etkisi yoktur.

  • Yatay kaydırma çubuklarında Yukarı ve Aşağı tuşları, sırasıyla ok1 ve ok2 üzerine fare tıklamalarıyla aynı davranışa sahiptir. Dikey kaydırma çubuklarında bu tuşların bir etkisi yoktur.

  • Yatay kaydırma çubuklarında Control-Up ve Control-Down, sırasıyla trough1 ve trough2 üzerindeki fare tıklamalarıyla aynı davranışa sahiptir. Dikey kaydırma çubuklarında bu tuşların bir etkisi yoktur.

  • Prior ve Next tuşları, sırasıyla trough1 ve trough2 üzerindeki fare tıklamalarıyla aynı davranışa sahiptir.

  • Giriş tuşu, görünümü belgenin üstüne (sol kenarına) ayarlar.

  • Bitir tuşu, görünümü belgenin altına (sağ kenarına) ayarlar.

Örnekler

require "tk"

list = scroll = nil

list = TkListbox.new {
   yscroll proc{|idx|
      scroll.set *idx
   }
   width 20
   height 16
   setgrid 1
   pack('side' => 'left', 'fill' => 'y', 'expand' => 1)
}
scroll = TkScrollbar.new {
   command proc{|idx|
      list.yview *idx
   }
  pack('side' => 'left', 'fill' => 'y', 'expand' => 1)
}

for f in Dir.glob("*")
   list.insert 'end', f
end

Tk.mainloop

Bu, aşağıdaki sonucu verecektir -


Language