gtkd中窗口小部件之间的交互
我正在试验D和gtkd。现在,我有了这个按钮,当我点击它时,我想在另一个小部件中启动一个函数。我该怎么做 下面是一些示例代码,它们正在工作,但尚未完成我想要的操作(当按下SearchButton时,应调用SearchResultsGrid中的函数): 所以,我想在SearchResultsGrid中触发showResults,我的想法是,将SearchResultsGrid对象映射到主函数中的SearchButton,但这不起作用gtkd中窗口小部件之间的交互,d,gtkd,D,Gtkd,我正在试验D和gtkd。现在,我有了这个按钮,当我点击它时,我想在另一个小部件中启动一个函数。我该怎么做 下面是一些示例代码,它们正在工作,但尚未完成我想要的操作(当按下SearchButton时,应调用SearchResultsGrid中的函数): 所以,我想在SearchResultsGrid中触发showResults,我的想法是,将SearchResultsGrid对象映射到主函数中的SearchButton,但这不起作用 什么是/a forseen方法呢?正如您在这个PyGtk示例中所
什么是/a forseen方法呢?正如您在这个PyGtk示例中所看到的,您需要将回调(read:function)连接到按钮上接收到的单击信号:这就是GTK如何在小部件之间传递信号,并启用组件之间的通信。在代码中,按钮和网格之间没有连接。这就是你所缺少的。
import gtk.Button;
import gtk.SearchEntry;
import gtk.Main;
import gtk.MainWindow;
import gtk.VBox;
import gtk.Grid;
import std.stdio;
import gdk.Event;
import gtk.Widget;
void main(string[] args) {
Main.init(args);
MainWindow win = new MainWindow("Example");
win.setDefaultSize(200, 100);
Box hbox = new Box(Orientation.HORIZONTAL, 2);
hbox.add(new SearchButton("Search"));
hbox.add(new SearchResultsGrid());
win.add(hbox);
win.showAll();
Main.run();
}
class SearchButton : Button {
this(in string text) {
super(text);
modifyFont("Arial", 14);
}
private bool search(Event event, Widget widget) {
return true;
}}
class StarterButton : Button {
this(in string text) {
super(text);
modifyFont("Arial", 14);
addOnButtonRelease(&startProgramm);
}
private bool startProgramm(Event event, Widget widget)
{
return true;
} }
class SearchResultsGrid : Grid {
public void showResults() {
attach( new StarterButton("Start"), 1,1,1,1);
attach( new StarterButton("Start2"), 2,1,1,1);
}}