标签: gtkd

如何在Win7和dmd(D2)中使用gtkD?

我下载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
Run Code Online (Sandbox Code Playgroud)

但是没有创建lib?

d dmd gtkd windows-7

8
推荐指数
1
解决办法
1194
查看次数

gtkD:最小绘图示例?

我是一个相当有经验的程序员,但是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();
}
Run Code Online (Sandbox Code Playgroud)

gtk user-interface drawing d gtkd

7
推荐指数
1
解决办法
1626
查看次数

如何使用Glade/GtkD和D编程语言显示Hello World

在Ubuntu Linux上,我可以使用Glade应用程序创建一个Hello World对话框.现在我如何让D编程语言显示它?

linux d glade gtkd ubuntu-14.04

5
推荐指数
1
解决办法
1687
查看次数

在D中,如何传递一个空字符串?(对gtkD)

将D1与phobos一起使用

我有一个文本输入字段,实例gtk.Entry.Entry,

调用setText("")会引发运行时错误

Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
Run Code Online (Sandbox Code Playgroud)

为什么?这似乎是D的一个问题,我试过这个:

string empty = "";
assert (empty != null);
my_entry.setText(empty)
Run Code Online (Sandbox Code Playgroud)

程序在断言失败时终止.

我该如何解决这个问题?

gtk string d gtkd

5
推荐指数
1
解决办法
709
查看次数

在Ubuntu 10.04上设置工作D2.x工具链(使用gtkd)

我已经和D玩了几天,并且对它感到非常兴奋,直到,我试图让gtkd工作.我现在浪费了3天中最好的部分试图获得一个工作设置,并开始得到(阅读;很久以前得到)有点士气低落.我想知道在我放弃之前是否有人可以提供帮助.我在网上找到的很多信息已经过时,所以我不确定我是否认为这甚至是可能的.

剩下的就是我到目前为止所尝试的内容,如果您有快速解决方案,可能不需要阅读它,所以请随意跳转到... [跳转到此处]

所以,首先我需要知道,探戈实际上可以与D2.0一起使用,我相信它不是最初的,但现在D2.x是这样的,你可以使用探戈和恐惧症并排.如果这不是真的,那么我想我已经陷入了第一道障碍,这是一个非首发.

到目前为止我采取的步骤.

  1. 我从ubuntu存储库安装了gdc
  2. 我从repos安装了libtango-headers(注意,只有标题,没有可用的库,所以没什么帮助)
  3. 我手动安装了dsss

这个设置会编译D,但是当我来安装gtkd(带有dsss)时,它编译但是在尝试使用它编译任何东西时我得到了各种错误(与tango有关).好吧,正如我所提到的,我没有libs,所以这不应该是意料之外的.我试图手动安装探戈库但仍然有很多错误,并最终使用了一个dsss net install tango警告我,我不能回到phobos(一些困扰我的东西,就像我提到的那样,我认为这两个可以和对方一起使用)无论如何,我继续前进并完全搞砸了我的设置.我现在无法编译任何D.

对不起我无法更明确地说明我在上一节中遇到的错误,老实说我不记得了.

无论如何,我删除了我安装的所有内容.并重新开始.

  1. 我从repos安装了gdc
  2. 我手动安装了dss

我现在读到最新的探戈不适用于gdc(不确定这是否属实)所以我

  1. 得到了dmd的deb并安装了它.
  2. 手动安装了latested tango(libs和header).
  3. 用dsss安装了gtkd

现在我无法识别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)完成的.

d gtkd

5
推荐指数
1
解决办法
1118
查看次数

在Fedora上使用D语言的GtkD

我使用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();
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误

➜/ 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

请帮我.

gtk d gtkd pony

4
推荐指数
1
解决办法
413
查看次数

开始使用gtkd

我是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();
}
Run Code Online (Sandbox Code Playgroud)

具体来说,我需要将哪些选项传递给dmd才能将其链接起来?几乎所有我能找到的文档都完全跳过了这个.

gtkd-svn软件包在/ usr/lib中安装了以下内容:

 /usr/lib/libgtkd.a
 /usr/lib/libgtkdgl.a
 /usr/lib/libgtkdsv.a
Run Code Online (Sandbox Code Playgroud)

d gtkd archlinux

4
推荐指数
1
解决办法
1591
查看次数

GtkD 中的 MainWindows show() 和 showAll() 方法有什么区别?

这是我的测试:

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();
}
Run Code Online (Sandbox Code Playgroud)

当我更换Main.show()Main.showAll()它按预期工作,但是我找不到任何在此功能的文档:http://api.gtkd.org/src/gtk/MainWindow.html是什么这两种方法,并何处之间的差异我找到文档?

user-interface d gtkd

4
推荐指数
1
解决办法
688
查看次数

标签 统计

d ×8

gtkd ×8

gtk ×3

user-interface ×2

archlinux ×1

dmd ×1

drawing ×1

glade ×1

linux ×1

pony ×1

string ×1

ubuntu-14.04 ×1

windows-7 ×1