Thread overview
gtkD'de setResizable False değerinde doğru çalışmıyor
Apr 01, 2010
Mengu
April 01, 2010

setResizable 1 olarak girildiğinde fare imleci ile pencerenin boyutunu ayarlayabiliyoruz. setResizable 0 olarak girildiğinde ise pencerenin boyutunu ayarlayamıyoruz. Ama nedense pencere boyutuda küçük açılıyor. Bunun için setDefaultSize'dan başka bir biçimde ayarlamak gerekiyormuş. Bende resize ile denedim ve yine olmadı. Nasıl bu sorunu halledebilirim ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 01, 2010

Alıntı (canalpay):

>

setResizable 1 olarak girildiğinde fare imleci ile pencerenin boyutunu ayarlayabiliyoruz. setResizable 0 olarak girildiğinde ise pencerenin boyutunu ayarlayamıyoruz. Ama nedense pencere boyutuda küçük açılıyor. Bunun için setDefaultSize'dan başka bir biçimde ayarlamak gerekiyormuş. Bende resize ile denedim ve yine olmadı. Nasıl bu sorunu halledebilirim ?

boyut ayarlamak icin setSizeRequest metodunu kullanman gerek. setDefaultSize kullanimdan kalkacak. ben de derste boyle bir hata yapmisim. bir de bu pencere icin gecerli. diger widgetlerde boyut ayarlamasi yapabilmen icin Alignment kullanman ve set() metoduyla butun degerleri 0 olarak vermen gerek.

bu basit ornekte hem yeniden fareyle boyutlandirabilirsin, hem de baslangic icin genislik ve yukseklik degerleri verebilirsin.

import gtk.Main;
import gtk.Window;
import gtk.Widget;
import gtk.Main;

void main(string[] args)
{
   // bütün GTK uygulamaları Main ile başlar.
   Main.init(args);
   // yeni penceremizi oluşturuyoruz ve pencere başlığını
   // "Merhaba gtkD"ye ayarlıyoruz.
   Window anaPencere = new Window("Merhaba gtkD");
   // penceremizin boyutunu ayarlıyoruz.
   anaPencere.setSizeRequest(450, 450);
   // "pencere" kapandığı zaman "programı" sonlandırıyoruz.
   anaPencere.addOnHide( delegate void(Widget w){ Main.exit(0); });
   // pencereyi gösteriyoruz.
   anaPencere.showAll();
   Main.run();
}

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 01, 2010

Şu çalıştı:

   // İstediğimiz özellikler
   GdkGeometry geometri;
   geometri.minWidth = 300;
   geometri.minHeight = 300;
   geometri.maxWidth = 500;
   geometri.maxHeight = 500;
   geometri.baseWidth = 400;
   geometri.baseHeight = 400;
   geometri.widthInc = 1;
   geometri.heightInc = 1;
   geometri.minAspect = 0;
   geometri.maxAspect = 0;
   geometri.winGravity = GdkGravity.NORTH_WEST;

   // setGeometryHints'in bunlardan hangilerini dikkate almasını
   // istediğimiz (ben hepsini seçiyorum; daha azı olabilir)
   GdkWindowHints bütünHints = (GdkWindowHints.HINT_POS |
                                GdkWindowHints.HINT_MIN_SIZE |
                                GdkWindowHints.HINT_MAX_SIZE |
                                GdkWindowHints.HINT_BASE_SIZE |
                                GdkWindowHints.HINT_ASPECT |
                                GdkWindowHints.HINT_RESIZE_INC |
                                GdkWindowHints.HINT_WIN_GRAVITY |
                                GdkWindowHints.HINT_USER_POS |
                                GdkWindowHints.HINT_USER_SIZE);

   pencere.setGeometryHints(pencere.getDefaultWidget(), &geometri, bütünHints);

Tabii min ve max'ları eşit yapmak gerekiyor. Bu kodda öyle değil. base'lerin ne olduklarını da anlamadım. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 02, 2010

Teşekkürler Mengu. Ama şunu anlayamadım: setSizeRequest ile pencereyi oluşturursam ne yazık ki öntanımlı değerden daha fazla küçültülmüyor. Ama ben küçültülmesini istiyorum. O zaman resize işlevini kullanabilir miyim ?
O da kullanımdan kalkacak mı ?

Ali Bey sizede teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]