Я не уверен, должен ли этот вопрос быть на сайте Ubuntu или здесь. Я публикую это здесь, потому что это о программировании, но, возможно, его следует перенести.
Я использую gtkmm с цепочкой инструментов defualt GCC в Ubuntu, и я только что обновил Ubuntu 12.04 LTS до 14.04 LTS, которая использует GTK + 3.10.
У меня есть файл проекта Glade, который использует Gtk::TextEntry
а также Gtk::SpinButton
виджеты. Когда я открыл проект в Glade после обновления 12.04 LTS, я получил это сообщение при попытке сохранить файл Glade. (Я не сохранил файл — я остановился на старом, чтобы не испортить что-либо.)
[window1:frame1:box1:layout1:spinbutton3] Property 'Placeholder text' of object class 'Text Entry' was introduced in gtk+ 3.2. ]
Когда я собираю и запускаю проект C ++, некоторые виджеты отображаются неправильно (отсутствуют кнопки вверх / вниз SpinEdit, а надписи, которые я там размещаю, перекошены):
Это все работало нормально до обновления.
В Synaptic я вижу, что у меня теперь установлены libgtk-3-0 и libgtk-3-0-dev, и дальнейшие обновления недоступны.
Есть ли проблема совместимости с 3.2 виджетами при запуске 3.10? Это проблема с Glade? Я просто сделал что-то не так, что 3.10 ловит, а 3.2 нет? Почему это происходит? Как я могу это исправить? Я запутался в том, что / где проблема.
Вы не должны использовать X / Y позиционирование для создания макетов в GTK +. GTK + основан на блочной модели. Вы должны использовать GtkGrid для размещения этих виджетов в сетке, чтобы метки и кнопки прокрутки находились в сетке. Задание позиционирования X / Y приведет к потенциальным проблемам, которые вы наблюдаете, если пользователь изменит размер шрифта, тему, тему или другие подобные вещи.