Установка изменяемого размера на ложное сжимает окно в точку - PullRequest
3 голосов
/ 27 августа 2010

Я создаю окно GTK, которое по разным причинам я хочу сделать пользователем неизменяемым.Но вызов метода set_resizable в окне заставляет его отображаться размером 1 на 1 пиксель.(В приведенном ниже коде окно отображает ожидаемый размер, если строка set-resizable закомментирована. Не имеет значения, в каком порядке вызывается resize и set-resizable.)1001 *

Вот код ...

#include <iostream>
#include "myarea.hpp"
#include <gtkmm/main.h>
#include <gtkmm/window.h>

int main(int argc, char** argv)
{
    Gtk::Main kit(argc, argv);
    Gtk::Window win;
    win.set_title("DrawingArea");
    win.resize (600, 600);
    //win.set_resizable (false);

    MyArea area;
    win.add(area);
    area.show();

    Gtk::Main::run(win);

    return 0;
}

Ответы [ 2 ]

10 голосов
/ 27 августа 2010

Используйте win.set_size_request(600, 600); вместо resize.Я не уверен на 100%, почему ваш путь не работает, но я думаю, что set_resizable(false) отменяет эффекты resize, заставляя окно возвращаться к его запросу размера по умолчанию, который настолько мал, насколько возможно.

1 голос
/ 27 августа 2010

Gtk::Window::set_default_size() также может быть полезно

...