0
我试图编译我的web应用程序的不过我有一点麻烦抓住了文件的路径在C用C抓取文件路径+ WebkitGTK
在PyGTK的我在C.本地桌面应用程序将使用...
import webkit, pygtk, gtk, os
path=os.getcwd()
print path
web_view.open("file://" + path + "/index.html")
但是我不知道如果我只是找错了地方或者什么,但是当我搜索谷歌我一直无法找出如何抓住文件在C中我想用这样的路径。
gchar* uri = (gchar*) (argc > 1 ? argv[1] : "file://" + path + "app/index.html");
而是在像这样一个怪诞的方式链接到它的...
gchar* uri = (gchar*) (argc > 1 ? argv[1] : "file://" + /home/michael/Desktop/kodeWeave/linux/app/index.html");
webkit_web_view_open (web_view, uri);
这里是我的整个项目(如果有用)。
#include <stdio.h>
#include <string.h>
#include <gtk/gtk.h>
#include <webkit/webkit.h>
static WebKitWebView* web_view;
void on_window_destroy (GtkObject *object, gpointer user_data) {
gtk_main_quit();
}
int main (int argc, char *argv[]) {
GtkBuilder *builder;
GtkWidget *window;
GtkWidget *scrolled_window;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "browser.xml", NULL);
window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder, "scrolledwindow1"));
g_signal_connect (G_OBJECT (window), "delete-event", gtk_main_quit, NULL);
gtk_window_set_title(GTK_WINDOW(window), "kodeWeave");
web_view = WEBKIT_WEB_VIEW (webkit_web_view_new());
gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (web_view));
gtk_builder_connect_signals (builder, NULL);
g_object_unref (G_OBJECT (builder));
gchar* uri = (gchar*) (argc > 1 ? argv[1] : "file:///home/michael/Desktop/kodeWeave/linux/app/index.html");
webkit_web_view_open (web_view, uri);
gtk_widget_grab_focus (GTK_WIDGET (web_view));
gtk_widget_show_all (window);
gtk_main();
return 0;
}
有没有围绕主要路径?如果我移动文件夹,重命名目录或在另一台具有不同用户名的计算机上使用,该怎么办?我不希望它依赖于特定的位置。 – 2015-01-15 18:22:25
由于这是一个GTK +程序,并且GTK +使用GLib,[GLib有一堆字符串助手](https://developer.gnome.org/glib/unstable/glib-String-Utility-Functions.html),可避免需要一个静态的,固定大小的缓冲区(注意在完成时你必须在运行时释放内存)[以及比简单字符串连接更适合构建URL的函数](https://developer.gnome.org/油嘴/不稳定/油嘴-URI-Functions.html)。 – andlabs 2015-01-15 18:32:39
@andlabs不错的链接,这非常有趣。但我相信OP会与这些函数混淆,因为显然OP不明白c中的字符串是如何可能的以及如何处理它们。 – 2015-01-15 18:34:54