0
的documentation for Fl_Tree in FLTK 1.3.4說:Fl_Tree回調時FL_WHEN_RELEASE
回調()被調用取決於當()
- FL_WHEN_RELEASE的值 - 回調調用時鼠標左按鈕被上釋放項目
- FL_WHEN_CHANGED - 回調時,鼠標左鍵調用改變選擇狀態
但我不能得到回調,如果鼠標被釋放,我看不出兩者之間的區別。有任何想法嗎?
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Tree.H>
static void cb_(Fl_Tree*, void*)
{
printf ("callback\n");
}
int main()
{
Fl_Double_Window* w = new Fl_Double_Window(325, 325);
Fl_Tree* o = new Fl_Tree(25, 25, 255, 245);
o->callback((Fl_Callback*)cb_);
o->when(FL_WHEN_RELEASE);
o->add("foo/bar");
o->add("foo/baz");
o->end();
w->show();
return Fl::run();
}
此片段在每次更改時都會輸出「回調」,即使設置了FL_WHEN_RELEASE也是如此。
我應該提到,我也嘗試測試/樹的例子。所以你說這裏的文檔是錯的?它清楚地表明** FL_WHEN_RELEASE - 在項目上釋放鼠標左鍵時調用回調** – Andy
它們都是正確的 - 它只是上下文。在樹視圖中,項目不能部分選中,因此更改和版本都具有相同的行爲。在編輯框中,可以部分選擇一個項目,以便它們具有不同的行爲。 – cup
但是在Fl_Tree上,如果點擊一個已經選擇的項目,它確實會有所不同。如果之前選擇了另一個項目,我期望回調FL_WHEN_CHANGED(因爲選擇已更改)。但是,如果已經選擇的項目再次點擊我期待FL_WHEN_RELEASE – Andy