我下载gtkD-1.5.1并解压缩到某个gtkD目录.接下来我该怎么办?我不明白我是否必须编译并将其链接到某些lib或只是在我的代码中链接到它?
编辑:(@ dsimcha)
dsss buildgtkD主目录中的命令给了我这个:
Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
undemofy
Could not detect versions.
Could not detect versions.
atk => DO-atk
cairo => DO-cairo
gdk => DO-gdk
gdkpixbuf => DO-gdkpixbuf
gio => DO-gio
glade => DO-glade
glib => DO-glib
gobject => DO-gobject
gthread => DO-gthread
gtk => DO-gtk
gtkc => DO-gtkc
pango => DO-pango
但是没有创建lib?
我是一个相当有经验的程序员,但是GUI编程的新手.我正在尝试将我为DFL编写的绘图库移植到gtkD,我无法将图形显示出来.以下代码为我生成一个空白窗口.有人可以告诉我它有什么问题,和/或发布最少的示例代码,以获得几行DrawingArea并在结果中显示结果MainWindow?
import gtk.DrawingArea, gtk.Main, gtk.MainWindow, gdk.GC, gdk.Drawable,
    gdk.Color;
void main(string[] args) {
    Main.init(args);
    auto win = new MainWindow("Hello, world");
    win.setDefaultSize(800, 600);
    auto drawingArea = new DrawingArea(800, 600);
    win.add(drawingArea);
    drawingArea.realize();
    auto drawable = drawingArea.getWindow();
    auto gc = new GC(drawable);
    gc.setForeground(new Color(255, 0, 0));
    gc.setBackground(new Color(255, 255, 255));
    drawable.drawLine(gc, 0, 0, 100, 100);
    drawingArea.showAll();
    drawingArea.queueDraw();
    win.showAll();
    Main.run();
}
在Ubuntu Linux上,我可以使用Glade应用程序创建一个Hello World对话框.现在我如何让D编程语言显示它?
将D1与phobos一起使用
我有一个文本输入字段,实例gtk.Entry.Entry,
调用setText("")会引发运行时错误
Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
为什么?这似乎是D的一个问题,我试过这个:
string empty = "";
assert (empty != null);
my_entry.setText(empty)
程序在断言失败时终止.
我该如何解决这个问题?
我已经和D玩了几天,并且对它感到非常兴奋,直到,我试图让gtkd工作.我现在浪费了3天中最好的部分试图获得一个工作设置,并开始得到(阅读;很久以前得到)有点士气低落.我想知道在我放弃之前是否有人可以提供帮助.我在网上找到的很多信息已经过时,所以我不确定我是否认为这甚至是可能的.
剩下的就是我到目前为止所尝试的内容,如果您有快速解决方案,可能不需要阅读它,所以请随意跳转到... [跳转到此处]
所以,首先我需要知道,探戈实际上可以与D2.0一起使用,我相信它不是最初的,但现在D2.x是这样的,你可以使用探戈和恐惧症并排.如果这不是真的,那么我想我已经陷入了第一道障碍,这是一个非首发.
到目前为止我采取的步骤.
这个设置会编译D,但是当我来安装gtkd(带有dsss)时,它编译但是在尝试使用它编译任何东西时我得到了各种错误(与tango有关).好吧,正如我所提到的,我没有libs,所以这不应该是意料之外的.我试图手动安装探戈库但仍然有很多错误,并最终使用了一个dsss net install tango警告我,我不能回到phobos(一些困扰我的东西,就像我提到的那样,我认为这两个可以和对方一起使用)无论如何,我继续前进并完全搞砸了我的设置.我现在无法编译任何D.
对不起我无法更明确地说明我在上一节中遇到的错误,老实说我不记得了.
无论如何,我删除了我安装的所有内容.并重新开始.
我现在读到最新的探戈不适用于gdc(不确定这是否属实)所以我
现在我无法识别dmd,因此只能使用gdc.然而,这并没有找到探戈.如果我直接使用dmd,它会找到tango和gtkd,但是我发现有关volatile语句被弃用的错误.在D2.x中显然是正确的东西,它让我回到"甚至支持探戈".
天哪,我很困惑!
[跳到这里]
如果有人能给我一步一步的说明如何设置工作设置,我将永远感激不尽!
谢谢,T.
更新: "我们在那里!"
所以我从http://www.digitalmars.com/d/download.html下载了dmd.2.049.zip 并解压缩到我的主目录并做了一个export PATH = $PATH:~/dmd2/linux/bin(感谢dsimcha).
忘了dsss.根据http://www.dsource.org/projects/gtkd/wiki/UsingSubversion上的说明获得了gtkd的svn版本.编辑GNUmakefile更改前缀/home/me/dmd2/linux并执行了make install.
编辑~/dmd2/linux/bin/dmd.conf所以包含的路径../include(放入gtkD库,../lib所以我不需要编辑库路径).
现在最后用gtkD编译我需要链接libgtkd和libdl,这是由dmd mydprog.d -L-lgtkd -L-ldl(由于jpf)完成的.
我使用Fedora20并通过sudo yum install gtkd安装gtkd
如何编译gtk这段代码?
import gtk.MainWindow;
import gtk.Label;
import gtk.Main;
void main(string[] args)
{
    Main.init(args);
    MainWindow win = new MainWindow("Hello World");
    win.setDefaultSize(200, 100);
    win.add(new Label("Hello World"));
    win.showAll();
    Main.run();
}
但我得到这个错误
➜/ tmp dmd -L-lgtkd -L-ldl main.d main.d(1):错误:模块MainWindow在文件'gtk/MainWindow.d'中无法读取导入路径[0] =/usr/include/dmd/phobos import path [1] =/usr/include/dmd/druntime/import
请帮我.
我是D的新手,想要尝试gtkd.我在arch linux上,安装了dmd2-complete(dmd 2.0.56)和gtkd-svn(针对D2构建的gtkd)软件包.我还验证了D本身是否正常工作(编译并运行了一个基本writefln("hello world");程序).
现在我正试图让gtkd启动并运行,并且很难编译和链接示例中的基本helloworld程序.
import gtk.MainWindow;
import gtk.Label;
import gtk.Main;
void main(string[] args)
{
  Main.init(args);
  MainWindow win = new MainWindow("Hello World");
  win.setDefaultSize(200, 100);
  win.add(new Label("Hello World"));
  win.showAll();
  Main.run();
}
具体来说,我需要将哪些选项传递给dmd才能将其链接起来?几乎所有我能找到的文档都完全跳过了这个.
该gtkd-svn软件包在/ usr/lib中安装了以下内容:
 /usr/lib/libgtkd.a
 /usr/lib/libgtkdgl.a
 /usr/lib/libgtkdsv.a
这是我的测试:
import gtk.Main;
import gtk.MainWindow;
import gtk.Label;
void main(string[] args)
{
    Main.init(args);
    auto window = new MainWindow("My Window");
    window.add(new Label("Label1"));
    window.show();
    Main.run();
}
当我更换Main.show()与Main.showAll()它按预期工作,但是我找不到任何在此功能的文档:http://api.gtkd.org/src/gtk/MainWindow.html是什么这两种方法,并何处之间的差异我找到文档?