林间空地 C++应用程序,GUI设计在运行时不一样

发布于 2024-11-04 04:39:29 字数 933 浏览 6 评论 0原文

我对 Linux 中的 GUI 编程非常陌生,在第一个障碍中绊倒了,我使用 Glade 来设计一个表单(我来自 Windows 背景),它在 Glade 中看起来与我运行时完全不同编译好的程序。 这是它们的屏幕截图

请参阅链接,因为他们不让我在此处发布图像

这是 C++

#include <gtk/gtk.h>
void close_app(GtkWidget* widget,gpointer user_data) {
 gtk_main_quit();
}
int main (int argc, char **argv) {
 GtkBuilder *gtkBuilder;
 GtkWidget *mainwin;
 gtk_set_locale();

 gtk_init (&argc, &argv);

 gtkBuilder= gtk_builder_new();
 gtk_builder_add_from_file(gtkBuilder,"test2.glade",NULL);
 gtk_builder_connect_signals ( gtkBuilder, NULL );
 mainwin= GTK_WIDGET(gtk_builder_get_object(gtkBuilder,"window1"));
 g_object_unref ( G_OBJECT(gtkBuilder) );

 gtk_widget_show_all ( mainwin );

 gtk_main ();

 return 0;
}

我在 debian scrap 上,我在使用 libgtk2.0-dev 版本 2.20 libgnome2.24 <- 我什至不知道这是否是问题所在?

有什么想法吗?

谢谢

Im very new to gui programming in linux and Im stumbling at the 1st hurdle, Im using glade to design a form (i come from windows background) it looks completly different in Glade than it does when I run the compiled program.
heres a screen grab of them

see link as they wont let me post images

heres the c++

#include <gtk/gtk.h>
void close_app(GtkWidget* widget,gpointer user_data) {
 gtk_main_quit();
}
int main (int argc, char **argv) {
 GtkBuilder *gtkBuilder;
 GtkWidget *mainwin;
 gtk_set_locale();

 gtk_init (&argc, &argv);

 gtkBuilder= gtk_builder_new();
 gtk_builder_add_from_file(gtkBuilder,"test2.glade",NULL);
 gtk_builder_connect_signals ( gtkBuilder, NULL );
 mainwin= GTK_WIDGET(gtk_builder_get_object(gtkBuilder,"window1"));
 g_object_unref ( G_OBJECT(gtkBuilder) );

 gtk_widget_show_all ( mainwin );

 gtk_main ();

 return 0;
}

im on debian squeeze and im using libgtk2.0-dev version 2.20 libgnome2.24 <- I dont even know if this mught be the problem?

any ideas?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福%小乖 2024-11-11 04:39:29

HBox 和 VBox 的空白处没有任何东西。如果没有其他小部件占用空间,那么您的按钮将展开以填充所有可用空间。如果您不希望按钮填充窗口,请在窗口中放置一些其他小部件。 GTK 中的大小和放置工作方式与其他工具包中的工作方式不同,其想法是构建一个用户界面,当用户调整窗口大小或 UI 字符串由于用户使用另一种语言使用应用程序而改变长度时,该用户界面仍然看起来不错。

请参阅 GTK 教程的相关部分这个其他教程

You have nothing in the empty spaces in your HBox and VBox. If there are no other widgets taking up the space, then your button will expand to fill all available space. Put some other widgets in your window if you don't want the button to fill it. Sizing and placement work differently in GTK than they do in other toolkits, the idea is to build a user interface that still looks good when the user resizes the window or when the UI strings change length because the user is using your application in another language.

See the relevant section of the GTK tutorial or this other tutorial.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文