【问题标题】:GTK4 Vala - show FileChooserDialogGTK4 Vala - 显示 FileChooserDialog
【发布时间】:2022-09-28 03:46:35
【问题描述】:

我在玩瓦拉GTK4.

文件选择器对话框不适合我

    using Gtk;
    
    int main (string[] argv) {
        // Create a new application
        var app = new Gtk.Application (\"com.example.GtkApplication\",
                                       GLib.ApplicationFlags.FLAGS_NONE);
    
        app.activate.connect (() => {
            // Create a new window
            var window = new Gtk.ApplicationWindow (app);
    
    
            window.title = \"File chooser\";
            window.set_default_size (350, 70);
            window.resizable = false;
    
    
        // Create a new button
        var file_choose_button = new Gtk.Button.with_label (\"...\");
        file_choose_button.clicked.connect (() => {
            var fileChooser = new FileChooserDialog(
                \"Select File\",
                window,
                FileChooserAction.OPEN,
                \"Cancel\",
                ResponseType.CANCEL,
                \"Open\",
                ResponseType.ACCEPT,
                null);
            fileChooser.response.connect(()=> {
                stdout.printf(\"File selectd!\");
    
            });
            // WHAT TO DO IN ORDER TO SHOW FILE CHOOSER?
        });
        window.set_child (file_choose_button);
        // Show
        window.present ();
    });

    return app.run (argv);
 }

我遗漏了一些重要的代码,这将导致 FileChooserDialog “出现”。

在以前的 GTK 版本中有 \"dialog.run\" - 在 GTK4 中没有。

https://docs.gtk.org/gtk4/class.FileChooserDialog.html 上的 C-Example 使用 makro(?) \"gtk_widget_show(xxx)\" 我无法在 Vala 中找到代表。

任何帮助表示赞赏!

此致

埃米尔

    标签: vala gtk4


    【解决方案1】:

    经过一番努力,找到了解决方案(并且非常简单)。

    Vala Documentaion Site - File Chooser Dialog 中所述 它继承自几个类,其中之一是 GTK.Window。

    所以它就像调用当下()方法。

    因此上面缺少的命令是:

    fileChooser.present();
    

    不要忘记使用关()选择文件或取消选择后的方法。

    重要的提示: "gtk_widget_show()“在 Vala 中的代表是GTK.Widget.show()但 我不够聪明,不知道如何准备参数。 它需要指针(GtkWidget*) 并简单地传递“fileChooser”会导致各种编译器异常。

    可能有人可以对此进行更多说明(因为我使用 Vala 来避免使用 C - 我显然不是这方面的专家)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      相关资源
      最近更新 更多