Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: gtk.MenuItem - use_underline - замучило меня в конец, спасите!!!!!  (Прочитано 728 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Бюсь вот над какой проблемой:

Python
GTK 3.0 через Gi (http://lazka.github.io/pgi-docs/api/Gtk_3.0/classes/MenuItem.html)

Надо в GTK меню показать лейбл с символом подчеркивания (_).

Ставлю ему <MenuItem>.set_use_underline(False) - а в меню все равно символ за подчеркиванием подчеркивается и работает как символ акселератор. Причем когда работает - когда нет - эффект плавающего глюка.

Сам элемент меню можно создать по разному - создать без лейбла, присвоить потом или создать сразу с лейблоом.
Уже и так и этак пробовал. set_use_underline(False) напихал уже везде где можно. Не пашет как положено - хоть тресни.

Пробовал заменить подчеркивание на два - тоже хрень какая-то... на что заменить подчеркивание - гугл упорно выдает замену пробела на подчеркивание (хреновы студенты со своими вопросами из контрольных все зафлудили >:( ).

Уже голову свернул... что-то никак не сообразить - что с этим сделать. Может есть у кого идеи или готовые решения?
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
И что - никто ничего на этот счет предолжить/посоветовать не может?
Неужели никто не сталкивался?  :-\ :idiot2:

Заменил пока на задвоенное подчеркивание... и set_use_underline(False) до и после назначения лейбла... вроде так работает и выглядит не так ужасно...
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Нашел полезный сайт : http://www.fileformat.info/info/unicode/char/search.htm там удобно поискать юникодные символы...

Нашел (после долгого перебора вариантов) адекватную замену подчеркиванию: Unicode Character 'MODIFIER LETTER LOW MACRON' (U+02CD)

Он конечно чуточку шире обычного подчеркивания - но выглядит вполне гармонично. Причем несмотря на то, что он называется модификатором - он отображается как самостоятельный символ. Другие модификаторы пробовал комбинировать с пробелом: т.е. пробел и к нему подчеркивание. Но там есть сложность подобрать нужного пробела (их в юникоде - просто море... :o - на любой вкус).

Найденное решение простое:

Код: (python) [Выделить]
<SomeMenyItem>.set_label(<SomeString>.replace('_',u"\u02CD"))
И не требует дергать не работающий/работающий через раз метод set_use_underline(False)
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Есть такая прога — таблица символов. gucharmap.

Она сообщает следующее:
Цитировать
_

U+005F LOW LINE

Основные свойства символа

В Юникоде с версии: 1.1
Категория Юникода: Знаки препинания, соединители

Другие полезные представления

UTF-8: 0x5F
UTF-16: 0x005F

Восьмеричное представление UTF-8 в языке C: \137
Десятичное представление XML: &#95;

Аннотации и перекрёстные ссылки

Имена псевдонимов:
 • spacing underscore (1.0)

Примечания:
 • this is a spacing character

См. также:
 • U+02CD MODIFIER LETTER LOW MACRON   /* Выглядит так: ˍ */
 • U+0331 COMBINING MACRON BELOW       /* Выглядит так:  ‍̱ */
 • U+0332 COMBINING LOW LINE           /* Выглядит так:  ‍̲ */
 • U+2017 DOUBLE LOW LINE              /* Выглядит так: ‗ */

Действительно, годится только 2cd; 331, 332 и 2017 — не совсем то, что нужно.
Но это так, к слову пришлось.
Делюсь знаниями, но их у меня мало!

 

Страница сгенерирована за 0.069 секунд. Запросов: 25.