fltk 从按钮将图像附加到窗口
Posted
技术标签:
【中文标题】fltk 从按钮将图像附加到窗口【英文标题】:fltk attach image to window from a button 【发布时间】:2021-04-20 18:13:12 【问题描述】:所以我的问题是:我正在尝试制作图像的“轮播”(从文件中选择图像,加载并使用“next_button”显示它或使用“previous_button”加载前一个)。我的问题是我不知道如何访问我在 main 中定义的同一个窗口,所以我可以附加选定的图片。 我尝试通过 my_Window& win 但在 cb_next 收到错误消息,说我不能使用这种类型(结构) 任何想法将不胜感激。非常感谢您宝贵的时间! 以下是代码示例:
struct my_Window : Graph_lib :: Window
//Defined buttons
//...
//Example of how I create and call the next_button(to display the next picture)
static void cb_next(Address, Address); // callback for next_button
void next();
;
//Here is what I use to make the button work
void my_Window::cb_next(Address, Address pw)
reference_to<my_Window>(pw).next(); //cannot pass my_Window
void my_Window::next()
//Load the next picture!
//This is where I want to attach the image
//but when I use attach(image) it doesn't know where to attach ( as expected)
redraw();
int main()
my_Window win(Point(100,100),800,600,"Images"); //I want this "win" to be accessed by the next button so I can attach the new picture.
return gui_main();
【问题讨论】:
【参考方案1】:这更像是一个 C++ 问题。
为什么 cb_next() 是静态方法?
如果将其设为普通方法,则可以使用 this
指针访问您在 main 中定义的相同结构/窗口。写this
也是可选的,你已经在next()方法中调用了redraw
,其实就是this->redraw();
。
【讨论】:
非常感谢!但是因为我是 C++ 新手,你能给我举个例子吗?所以基本上如果我把它改成非静态的,我可以通过结构吗? 如果我将其更改为非静态方法,那么我对按钮的声明/定义将不起作用,因为它们需要一个静态值: 如果你去掉静态,你不需要传递结构,你已经可以访问this
。以上是关于fltk 从按钮将图像附加到窗口的主要内容,如果未能解决你的问题,请参考以下文章
如何在 App 中将 ImageView 中的图像附加到电子邮件