c++ - 如何用图像填充整个窗口并允许调整窗口大小?
问题描述
我需要将图像调整为整个窗口的大小并保持缩小/调整窗口大小的选项。作为一项单独的任务,它很容易完成,但不能一起完成。我使用的示例代码是:
myWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(myWindow), "name");
gtk_window_set_default_size(GTK_WINDOW(myWindow), myWidth, myHeight);
gtk_window_set_resizable(GTK_WINDOW(myWindow), TRUE);
g_signal_connect(myWindow, "delete-event", G_CALLBACK(PrivDeleteEvent), this);
g_signal_connect(myWindow, "destroy", G_CALLBACK(PrivOnDestroy), this);
myImage = gtk_image_new();
GtkWidget* container = gtk_alignment_new(0, 0, 1, 1);
gtk_container_add(GTK_CONTAINER(myWindow), container);
gtk_container_add(GTK_CONTAINER(container), myImage);
g_signal_connect(myImage, "expose-event", G_CALLBACK(PrivOnImageExposeEvent), this);
gtk_widget_show_all(myWindow);
gtk_main();
void
PrivSetImage()
{
GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data(...);
gtk_image_set_from_pixbuf(GTK_IMAGE(myImage), pixbuf);
}
在图像小部件调整大小后,我调用了一些渲染内容,然后将其显示在 GtkImage 本身中。这很好用,我看到图像并且可以调整窗口大小。但是在调用 gtk_image_set_from_pixbuf 之后,我不再能够缩小窗口小于用于创建 Pixbuf 的大小。好像在里面的某个地方调用了带有 Pixbuf 尺寸的 gtk_widget_set_size_request,这会阻止窗口缩小到 pixbuf 大小。有什么建议吗?
解决方案
推荐阅读
- r - 在 ggplot geom_bar 中以不同颜色绘制零
- php - PHPMailer - 发送短信
- ruby-on-rails - Rails 5 GET请求嵌套数组参数意外更改
- javascript - 从 Javascript 中的 url 获取 JSON 文件,React Native
- python - 如何从谷歌云存储中读取子目录/前缀中的文件?
- java - 在 Eclipse 启动器的环境变量中使用 project_loc 和 workspace_loc?
- javascript - Can I make a shared reactjs validation component?
- android - 这是统计应用注册用户的有效方法吗?
- r - 调整 R 中 ggarrange 上每个单独图形的图例
- node.js - 无法将 NodeJS 应用程序连接到 MSSQL 链接服务器(服务器对象)