Forum: D Programlama Dili RSS
gtkD'de setResizable False değerinde doğru çalışmıyor
canalpay (Moderatör) #1
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: gtkD'de setResizable False değerinde doğru çalışmıyor
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 ?
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ş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
Mengu (Moderatör) #3
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
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();
}
http://www.mengu.net - some kind of monster
Bu mesaj 2 defa değişti; son değiştiren: Mengu; zaman: 2010-04-01, 15:45.
canalpay (Moderatör) #4
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 00:33:53 (UTC -08:00)