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