Forum: D Programlama Dili RSS
gtkD'de Konum Ayarlamak İçin GtkWindowPosition Türü
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 Konum Ayarlamak İçin GtkWindowPosition Türü
gtkD örneğin ekranın tam ortasında konumlandırmak için şöyle bir kod yazmamız gerekiyormuş:

import gtk.Window;
import gtk.Main;
int main(string[] args)
{
Main.init(args);
auto pencere = new Window("deneme");
//pencere.maximize;/*Eğer oluşturduğumuz pencerenin tam ekran olarak açılmasını istersek maximize() adlı metottan yararlanabiliriz*/
pencere.setPosition(GTK_WIN_POS_CENTER);// void setDefaultSize (int width, int height); int en, int boy açılışta pencerenin boyutunu ayarlar.
//Eğer programımızın çalışması esnasındaki bir aşamada tam ekran halindeki bir pencereyi tam ekran konumundan çıkarmak istersek de unmaximize() metodunu kullanabiliriz
//pencere.move(100,100);
pencere.setOpacity(0.5); //İşe yaramadı.
//pencere.unmaximize;
pencere.show();
Main.run;
 
return 0;
}

Burdaki önemli kod parçası:
 pencere.setPosition(GTK_WIN_POS_CENTER);

Burada http://gtkd.mikewey.eu/src/gtk/Window.html belgesine göre GtkWindowPosition türünde bir şey yazmamız gerekiyor. Belgedeki örnek: GTK_WIN_POS_CENTER_ALWAYS Ama ne yazıkki yazdığımda şöyle bir hata veriyor:
deneme.d(9): Error: undefined identifier GTK_WIN_POS_CENTER
deneme.d(9): Error: function gtk.Window.Window.setPosition (GtkWindowPosition position) is not callable using argument types (int)
deneme.d(9): Error: cannot implicitly convert expression (GTK_WIN_POS_CENTER) of type int to GtkWindowPosition

Bazı şeyler denedim ama olmadı. Sizce nasıl bu sorunu aşabilirim ?
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ı
Önce GtkWindowPosition'ın nerede tanımlandığını buldum:

grep -r GtkWindowPosition ~/gtkD/src/* | grep \.d

Çıkan sonuçlar arasında şu satır ilgimi çekti:

/home/ali/gtkD/src/gtkc/gtktypes.d:public enum GtkWindowPosition

O dosyanın içine bakınca, enum'un şöyle tanımlanmış olduğunu gördüm:

public enum GtkWindowPosition
{
    POS_NONE,
    POS_CENTER,
    POS_MOUSE,
    POS_CENTER_ALWAYS,
    POS_CENTER_ON_PARENT
}
alias GtkWindowPosition WindowPosition;

Yani hem örnekteki, hem de bu dosyadaki kod açıklamaları yanlış. :) (Olur böyle şeyler... :)) Şu çalışıyor:

pencere.setPosition(GtkWindowPosition.POS_CENTER);

Oradaki alias'tan anlaşıldığına göre şu da olur:

pencere.setPosition(WindowPosition.POS_CENTER);

Hangisinin uygun olduğunu bilemem. :)

Ali
canalpay (Moderatör) #3
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ı
Yani hem örnekteki, hem de bu dosyadaki kod açıklamaları yanlış. :) (Olur böyle şeyler... :))

Sorun bende değil :-) Şaka bir yana Mike'ın sitesindeki bilgilerin pek gtkD ile alakası yok :-p  Sanırım C için yazılmış. Örneğin init için şöyle bir açıklama var. int(char[][] bilmemne). Ama D'de char'ın anlamı sanırım C'ye göre daha değişik(Sabit değil, değişken oluyorlar.).  Bu yüzden D'de char[][] yerine string[] yazılması gerekiyor. Yani gtkD ile ilgili düzgün bir belge yok. Ama ben Türkçe olarak güncel bir belge hazırlıyorum :-) Sanırım sizin D dersleriniz gibi buda ilk :-D

pencere.setPosition(GtkWindowPosition.POS_CENTER);

Sanırım Javada da böyle bir kullanım var. Keşke javanınkinide deneseymişim. Python ve C'ninkini denedim ayrıca C'ninkini kendimce D'ye çevirdim, to şablonu ilede bazı şeyler denedim. Baktım olmuyor size sordum.

Bu arada denedim ve oldu. Ekranın tam ortasına boyutunu ayarlamadığım için 200x200 piksellik bir pencere açıldı. Teşekkürler
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ı
Bu arada gtkDde yavaş yavaşta olsa ilerliyorum. Ve ilerledikçede dersler için kısa kısa notlar alıyorum. Bu notlara bakmak isterseniz :http://www.dosyahosting.net/file/4/dJAN/dJANquPGA7T3/gtkde…

Şuan yazarak ilerlediğim ve çok zamanım olmadığı için gtkDde yavaş ilerliyorum. Ayrıca son setPosition işlevini de yazmadım. Ama yinede şuan bunları direk ders olarak koysam en çok anlaşılan gtk (D bile demiyorum,  diğer dillerdende olabilir.) derslerini yazmış olurum. O kadar iddialıyım :-) Heleki birde gtk'nin resmi tutorial'ine baktıktan sonra çok iddialıyım. Bir ben birde istihzadaki fırat(Ama o dersleri kolay bir dilde anlatıyor ve o dil için ingilizce örnek çok :-)) çok iyi Türkçe gtk dersi yazıyor :-).
acehreli (Moderatör) #5
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ı
Yanıtlanan mesaj #3
canalpay:
Sanırım C için yazılmış.

Öyle başlamıştır ve zamanla D'leşiyordur. Çünkü o sayfadaki şu kod D:

class Window : gtk.Bin.Bin;

this, protected, vs. de C'de yok. C ile başlamaları normal. Herhalde kafamızda bir dönüşüm uygulamamızı bekliyorlar. Bu tür yanlışlıkları göre göre kabul edeceğiz.

Türkçe olarak güncel bir belge hazırlıyorum :-) ... buda ilk :-D

Süper, süper! :)

pencere.setPosition(GtkWindowPosition.POS_CENTER);

Sanırım Javada da böyle bir kullanım var. Keşke javanınkinide deneseymişim.

Nereden bileceksin... :) Bu işin sonu yok; eninde sonunda kodlara bakmamız gerekebiliyor.

Ali
acehreli (Moderatör) #6
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ı
Yanıtlanan mesaj #4
canalpay:
Şuan yazarak ilerlediğim ve çok zamanım olmadığı için gtkDde yavaş ilerliyorum.

Arama hoşgeldin! ;) Aynı dert bende de var: D.ershane'yi yazmaktan D'nin bir çok başka tarafını kurcalayacak zaman bulamadım.

Neyse ki bitiyor. Göstergeler dersi de iyi durumda. ;) Ne yazık ki bu da çok uzun oldu. İkiye ayırmaya çalışacağım.

Ali
canalpay (Moderatör) #7
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ı
Neyse ki bitiyor. Göstergeler dersi de iyi durumda. ;) Ne yazık ki bu da çok uzun oldu. İkiye ayırmaya çalışacağım.

svn ile gönderin(ki bende hemencecik okuyabileyim :-D ). Bende dersi yazmıyorsunuz sandım. Bu habere çok sevindim. Ama d.ershanede ders bitince D'nin bütün iç olanaklarını anlatmış olacak mısınız ?

Sanki bana hala Phobosa baksam çok bir şey anlamayacağım sanıyorum.

Bu arada hemencecik konu altında aylık D dili gelişimi toplantısını yapalım :-)

1. Andrei'nin kitabı hakkında son bir gelişme var mı ?
2. D'de  birşey değiştirmeyi düşünüyorlar mı ? Örneğin lazy'e ne oldu ?
3. Phobosta std.bigint gerçekleştirimine ne oldu ?( Don daha iyisini yazacaktı.)(birde bigint ne demek ona bakmak gerekiyor.)
4. cstreami stream kaldırılcaktı ne oldu ?
5. std.socket'e ne oldu. ıpv6'ya geçtimi yoksa 4'temi ne oluyor phobosta.

Evet sanırım hiç yanıltlamasınız daha iyi :-)
acehreli (Moderatör) #8
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ı
canalpay:
svn ile gönderin(ki bende hemencecik okuyabileyim :-D ).

Taslağını svn'e koydum:

  https://code.google.com/p/ddili/source/detail?r=52

Bu arada hemencecik konu altında aylık D dili gelişimi toplantısını yapalım :-)

Sorduğun gelişmeler hakkında yeni bilgim yok. :/

Ali
Mengu (Moderatör) #9
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ı
canalpay, iyi gidiyorsun sen, benim yazmama gerek yok su halde sonuc itibariyle ayni konuyu islemenin manasi yok. ben QtD ile ilgili yazarim.
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #10
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ı
Mengu:
ayni konuyu islemenin manasi yok

Hemen karar vermesek. :)

Can'ın yeni başlayanın gözüyle yazdığını söyledikleri, senin belki de daha teorik olarak anlatmakta olduklarınla örtüşüyor mu? İkinizden de yararlanamaz mıyız?

ben QtD ile ilgili yazarim

O da çok yararlı olur tabii. (Bir de kurabilsem de çalışsa. :D)

Ali
canalpay (Moderatör) #11
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ı
ayni konuyu islemenin manasi yok. ben QtD ile ilgili yazarim.

Eğer QtD'yi yazacağına söz verirsen kabul :-) Ama şunuda unutmadan söyleyeyim, bir çok konuda senin dersine bakıyorum. Yani senin derslerinin yeri çok ayrı ;-)

Birde şu pencerede kapama düğmesine kapat görevi verirken kullandığımız kodları çok iyi anlamadım. Onun hakkında biraz anlatım yapar mısın ? Şuan anlayabilmek için tekrar birşeyler deneyeceğim.
Mengu (Moderatör) #12
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 #10
acehreli:
Mengu:
ayni konuyu islemenin manasi yok

Hemen karar vermesek. :)

Can'ın yeni başlayanın gözüyle yazdığını söyledikleri, senin belki de daha teorik olarak anlatmakta olduklarınla örtüşüyor mu? İkinizden de yararlanamaz mıyız?

ben QtD ile ilgili yazarim

O da çok yararlı olur tabii. (Bir de kurabilsem de çalışsa. :D)

Ali

Can'in o sekilde yazmazi zannediyorum daha iyi olur. ben Pearl'u QtD'ye adapte bile ettim ama kod renklendirme ve satir numaralandirma olayini yapmadim. Qt icin onlari ozel yapmak gerekiyor. http://omploader.org/vNDBuaw/out-15.ogv

canalpay:
ayni konuyu islemenin manasi yok. ben QtD ile ilgili yazarim.

Eğer QtD'yi yazacağına söz verirsen kabul :-) Ama şunuda unutmadan söyleyeyim, bir çok konuda senin dersine bakıyorum. Yani senin derslerinin yeri çok ayrı ;-)

Birde şu pencerede kapama düğmesine kapat görevi verirken kullandığımız kodları çok iyi anlamadım. Onun hakkında biraz anlatım yapar mısın ? Şuan anlayabilmek için tekrar birşeyler deneyeceğim.

iki sekilde yapabiliyoruz bu islemi. birincisi addOnHide isimli sinyale bir delege metod ekleyerek, ikincisi widget icin bir subclass yazip, subclass icinde bir metod atayarak. son pdf'de ikisi de yer aliyor.
http://www.mengu.net - some kind of monster
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-21, 13:01:50 (UTC -08:00)