Russian Qt Forum
Июля 06, 2025, 16:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение символа "&" на некоторых компонентах QtQuick.Controls.  (Прочитано 7008 раз)
8: Undefined index: LANG_NAME
Файл: /var/www/html/Sources/geshi/geshi.php
Строка: 4032
ksk-
Самовар
**
Offline Offline

Сообщений: 178



Просмотр профиля
« : Августа 09, 2015, 15:12 »

Всем привет! На некоторых компонентах из QtQuick.Controls (в частности "Button" и "MenuItem") некорректно отображается текст, содержащий символы "&". Очень не хотелось бы только из-за этого делать стили для таких компонентов. Я надеялся использовать системный.

Видимо, это баг? Или так и задумано? Может быть, есть какое-нибудь быстрое и простое решение?

Ниже код и картинка:
Код
Javascript
import QtQuick 2.5
import QtQuick.Controls 1.4
 
Rectangle {
   width: 200;
   height: 200;
 
   Column {
       anchors.fill: parent;
       anchors.margins: 2;
 
       spacing: 2;
 
       Label {
           text: "Black & White";
       }
 
       Button {
           text: "Black & White";
 
           menu: Menu {
               MenuItem { text: "Black & White" }
           }
       }
   }
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Августа 10, 2015, 08:57 »

& в QAction используется для определения вызова по Alt + буква. Погугли, как ее сэкранировать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ksk-
Самовар
**
Offline Offline

Сообщений: 178



Просмотр профиля
« Ответ #2 : Августа 10, 2015, 09:22 »

& в QAction используется для определения вызова по Alt + буква. Погугли, как ее сэкранировать.

Да, точно! Теперь всё ясно. И как я сразу не догнал? )))) Спасибо. )
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Августа 10, 2015, 09:30 »

Как найдешь решение, сюда закинь. А то я подзабыл, как его экранировать. Да и мало ли, кто еще искать будет.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BuRn
Гость
« Ответ #4 : Августа 10, 2015, 10:01 »

Кодом символа не прокатит ?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Августа 10, 2015, 10:03 »

Покатит, но что-то проще было. Возможно, "&&"
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ksk-
Самовар
**
Offline Offline

Сообщений: 178



Просмотр профиля
« Ответ #6 : Августа 10, 2015, 21:39 »

Покатит, но что-то проще было. Возможно, "&&"
Действительно! Это то, что нужно. Обрабатываю текст для отображения на таких контролах с помощью функции:
Код
Javascript
function menuItemText(text) {
   return text.replace(new RegExp("&", 'g'), "&&");
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Августа 10, 2015, 21:49 »

А зачем тут регексп? Это как из пушки по воробьям. Просто пробегись по строке и сделай замену. Хотя, для qml это не очень критично. )))
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ksk-
Самовар
**
Offline Offline

Сообщений: 178



Просмотр профиля
« Ответ #8 : Августа 10, 2015, 21:55 »

А зачем тут регексп? Это как из пушки по воробьям. Просто пробегись по строке и сделай замену. Хотя, для qml это не очень критично. )))
Это самый наглядный рабочий способ. )
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Августа 10, 2015, 21:58 »

Ну, про самый и наглядный я бы поспорил. Если не лень будет завтра, попробую покрутить.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.