

組み込みでGUIとしてGTKを使用しています。出力は640x480のLCDパネルです。  
ファイル選択のため、gtk_file_chooser_dialog_new()
でファイル選択ダイアログを使用した所、ダイアログがLCDの表示をはみ出しており、全体が見えません。

[code]

    /* ファイル選択ダイアログの作成*/
    dialog = gtk_file_chooser_dialog_new ("Open an image" ,
        GTK_WINDOW (m_window) ,
        GTK_FILE_CHOOSER_ACTION_OPEN ,
        GTK_STOCK_CANCEL ,
        GTK_RESPONSE_CANCEL ,
        GTK_STOCK_OPEN ,
        GTK_RESPONSE_ACCEPT ,
        NULL);
    
    gtk_widget_set_size_request(dialog, 320, 240);
    
    /* ダイアログの表示*/
    gtk_widget_show_all (dialog);
    
[/code]

と行なってみましたが、思うようにサイズが変更が出来ません。  
ダイアログの大きさは、どの様に変更したら良いでしょうか？


CC BY-SA 3.0
2016-10-14T04:45:02.617
29548
2016-10-14T23:31:47.557
19169
question
gtk
GTKの gtk_file_chooser_dialog_new() の大きさを変更したい


こんなかんじでいかがでしょう。  
(とりあえず、linuxmint18で確認)

[code]

    #include <gtk/gtk.h>
    
    int main(int argc, char *argv[])
    {
        GtkWidget *dialog;
    
        gtk_init(&argc, &argv);
    
    #if 0
        /* こっちはダメ */
        dialog = gtk_file_chooser_dialog_new("test", NULL,
                 GTK_FILE_CHOOSER_ACTION_OPEN,
                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
                 NULL);
        gtk_widget_set_size_request(dialog, 320, 240);
    #else
        /* こっちは大丈夫 */
        {
            GtkWidget *file_chooser;
    
            dialog = gtk_dialog_new_with_buttons("test", NULL,
                     GTK_DIALOG_MODAL,
                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
                     NULL);
            gtk_window_set_default_size(GTK_WINDOW(dialog), 320, 240);
            file_chooser = gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_OPEN);
            gtk_widget_show(file_chooser);
            gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), file_chooser, TRUE, TRUE, 0);
        }
    #endif
    
        g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(gtk_main_quit), NULL);
        gtk_widget_show(dialog);
    
        gtk_main();
        return 0;
    }
    
[/code]

ただ、FileChooserの最小サイズというものがあるらしく、500x380ぐらいにしかなりませんでしたが。

gtk_file_chooser_dialogのソースファイルを見てみましたけど、ちょっとハッキリとはわかりませんが、なんか強制的にデフォルトウィンドウサイズを設定してる感じがしますねぇ。


CC BY-SA 3.0
2016-10-14T13:49:52.943
29566
2016-10-14T13:49:52.943
15473
29548
answer