GtkButton vs. GtkLabel: как настроить один или другой? - PullRequest
2 голосов
/ 08 мая 2011

Контекст

Я работаю над приложением с PyGtk, которое более или менее работает как панель, очень похоже на gnome-panel. В идеале на панели, которую я делаю, мне нужна кнопка без рамки (примечание: я нахожусь в процессе изучения кодирования GUI с помощью PyGtk).

Проблема

Я понял из другого потока , а также документацию , что gtk_button_set_relief(GtkButton, GTK_RELIEF_NONE) отменяет рельеф кнопки только на GTK_STATE_NORMAL. Следовательно, при наведении на кнопку снова появляется рельеф (примечание: это откровенно раздражает, что такие опции частично проработаны).

Альтернативой этой проблеме является использование GtkLabel, сделать GtkEventBox его родителем и заставить его функционировать как кнопку. Однако есть проблема: хотя у шрифта GtkButton есть рельеф, у шрифта GtkLabel его нет. Смотрите скриншот ниже:

From left to right: GtkLabel without font relief and GtkButton with font relief

Слева направо: GtkLabel без рельефа шрифта и GtkButton с рельефом шрифта

Вопросы

Теперь, возможно, вы можете помочь мне решить вышеизложенное с вашими предложениями. То, о чем я думаю, это:

  1. Что вызывает рельеф шрифта на этих GtkWidgets: тема или сама база Gtk?
  2. Как я могу добавить рельеф к шрифту надписи? OR
  3. Как удалить рельеф границы кнопки во всех штатах?
  4. В целом, как я могу создать свой собственный виджет (подклассы GtkLabel или GtkButton), используя PyGtk? (Я видел пример в этой теме , но я уверен, что это C)
  5. Есть ли какая-нибудь альтернатива, о которой я не думал?
  6. Должен ли я вообще использовать другую библиотеку GUI?

Спасибо. Бенджамин:)


Редактировать: проблема с ручкой изменения размера, связанной с GtkEventBox, по-видимому, является следствием ошибки Gtk + .

...