首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GTK4 Vala - FileChooserDialog秀

GTK4 Vala - FileChooserDialog秀
EN

Stack Overflow用户
提问于 2022-09-25 13:54:55
回答 1查看 67关注 0票数 0

我在和ValaGTK4一起玩。

FileChooserDialog不是为我工作的

代码语言:javascript
复制
    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-示例使用makro(?)"gtk_widget_show(xxx)“无法在Vala中找到表示。

任何帮助都很感激!

诚挚的问候

埃米尔

EN

回答 1

Stack Overflow用户

发布于 2022-09-27 19:46:35

经过一番努力,找到了解决办法(而且相当简单)。

正如Vala文档网站-文件选择器对话框中所述,它继承了两个类,其中一个类是GTK.Window。

因此,它就像调用present()方法一样简单。

因此,上面缺少的命令是:

代码语言:javascript
复制
fileChooser.present();

一旦选择了文件或取消了选择,就不应该忘记使用close()方法。

重要注意: Vala中的"gtk_widget_show()“表示是GTK.Widget.show(),但我不够聪明,无法了解如何准备参数。它期望指针(GtkWidget*)并简单地传递"fileChooser“会导致各种编译器异常。

也许有人可以对此给予更多的关注(因为我用Vala来避免使用C--显然我不是这方面的专家)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73845051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档