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-&gt;redraw();

【讨论】:

非常感谢!但是因为我是 C++ 新手,你能给我举个例子吗?所以基本上如果我把它改成非静态的,我可以通过结构吗? 如果我将其更改为非静态方法,那么我对按钮的声明/定义将不起作用,因为它们需要一个静态值: 如果你去掉静态,你不需要传递结构,你已经可以访问this

以上是关于fltk 从按钮将图像附加到窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何使用一个按钮切换 IMG 删除和附加?

保存按钮未附加到右侧信息窗口,谷歌地图

如何在 App 中将 ImageView 中的图像附加到电子邮件

SQL附加数据库

如何将图像从 Android 中的 Drawable 附加到彩信?

弹出框未附加到锚点