首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Fl_Scroll初值

Fl_Scroll初值
EN

Stack Overflow用户
提问于 2015-01-20 10:31:49
回答 1查看 585关注 0票数 0

我在一个项目中使用FLTK (Debian/SID1.3.2-6+b1发布的版本),我在初始化Fl_Scroll的内容滚动值时遇到了一些困难。

我创建了一个Fl_Double_Window,在右边使用Fl_Scroll创建了一个垂直面板,它位于左x 600和顶部y 24

然后,我将Fl_Scroll的类型设置为Fl_Scroll::VERTICAL,并在其中放置一个Fl_Button,一切都很好。

问题?Fl_Scroll初始化已经用yposition() = 24 (Fl_Scroll的构造函数的X和Y)滚动了??应该是这样吗?),相反,我希望它使用在左侧和顶部0, 0上滚动的内容进行初始化,所以我在窗口的show()之前和之后的不同位置尝试了scroll_to(),在子类Fl_ScrollFL_SHOW上(我实际上不需要子类Fl_Scroll,只需要尝试使scroll_to()工作),也可以在父draw()之后重写的draw()上,甚至在0,0,然后在600,24,但没有创建position()的位置创建Fl_Scroll

scroll_to()工作的唯一方法是在应用程序初始化(FL_KEYUP)之后从异步事件调用它。

下面是重写的Fl_Double_Window窗口构造函数:

代码语言:javascript
运行
复制
group = new Fl_Group(0, 0, WIN_W, WIN_H);
{
 menu = new Fl_Menu_Bar(0, 0, WIN_W, MENU_H);
 menu->add("File/Quit",   FL_CTRL+'q', cbMenuQuit_i);

 glview = new CGLView(0, MENU_H, WIN_W-PROPS_W+1, WIN_H-MENU_H);
 group->resizable(glview);

 scroll = new CScroll(WIN_W-PROPS_W, MENU_H, PROPS_W-1, WIN_H-MENU_H);
 scroll->type(Fl_Scroll::VERTICAL);
 {
  Fl_Pack *pack = new Fl_Pack(0, 0, PROPS_W-1, WIN_H-1);
  {
   btnAddLayer = new Fl_Button(0, 0, PROPS_W, 32, "@#+ Add Layer");
   btnAddLayer->callback(btnAddLayerCb_i, (void *)this);
  }
  pack->end();
 }
 scroll->end();
}
group->end();

end();
size_range(WIN_MIN_W, WIN_MIN_H); /* Make the window resizable */
show();
EN

回答 1

Stack Overflow用户

发布于 2015-01-20 12:11:30

算了,明白了,有两种调剂:

  • 在0,0处创建Fl_Scroll,然后在scroll->end()之后创建它
  • 在想要的位置创建Fl_Scroll,然后在scroll->end()使用负值scroll_to(-X, -Y)之后

在这两种情况下,重要的是已经添加了包含的小部件(scroll_to()、alter、cases小部件)

我不清楚为什么使用Fl_Scroll构造函数的X和Y。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28043073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档