Контекст
Я работаю над приложением с 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](https://i.stack.imgur.com/Hi1ln.png)
Слева направо: GtkLabel без рельефа шрифта и GtkButton с рельефом шрифта
Вопросы
Теперь, возможно, вы можете помочь мне решить вышеизложенное с вашими предложениями. То, о чем я думаю, это:
- Что вызывает рельеф шрифта на этих GtkWidgets: тема или сама база Gtk?
- Как я могу добавить рельеф к шрифту надписи? OR
- Как удалить рельеф границы кнопки во всех штатах?
- В целом, как я могу создать свой собственный виджет (подклассы GtkLabel или GtkButton), используя PyGtk? (Я видел пример в этой теме , но я уверен, что это C)
- Есть ли какая-нибудь альтернатива, о которой я не думал?
- Должен ли я вообще использовать другую библиотеку GUI?
Спасибо.
Бенджамин:)
Редактировать: проблема с ручкой изменения размера, связанной с GtkEventBox, по-видимому, является следствием ошибки Gtk + .