crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Enum element from string
ruzik
  опции профиля:
сообщение 23.5.2011, 16:07
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Здравствуйте, не подскажите как поступить в данной ситуации
У меня есть enum QCompleter::CompletionMode и есть выбранный элемент из этого enum, например PopupCompletion и как конвертировать этот PopupCompletion в QCompleter::PopupCompletion, что бы его можно было использовать в нужных местах, и есть для этого какие-нибудь готовые классы и тп
P.S. элемент с if сразу отпадает тк слишком долго, а таких элементов у меня не мало
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 23.5.2011, 18:51
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


вот, что ты описал:
class QCompleter
{
   enum CompletionMode
   {
        PopupCompletion,
   };
};


непонятно, зачем конвертировать, когда PopupCompletion и так уже является членом-константой класса QCompleter?

Для чего это, что хочешь добиться в итоге - расскажи
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 23.5.2011, 19:03
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Я сделал так что бы пользователь сам выбирал CompletionMode в comboBoxe и сохраняю его выбор с помощью QSettings, но как вы понял сохраняется только название выбранного метода, то есть PopupCompletion, а при загрузки программы я хочу что бы она работала как указал пользователь, для этого мне нужен не строка PopupCompletion а именно сам элемент QCompleter::PopupCompletion
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 23.5.2011, 19:16
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ruzik, преобразуй в int и всего то и делов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 23.5.2011, 19:58
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Если у меня есть иднекс например 1 как выбрать 1 элемент из enum'a
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.5.2011, 6:51
Сообщение #6


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ruzik, я не телепат, извини. Описывай ТЗ подетальнее :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 24.5.2011, 11:36
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Есть enum QCompleter::CompletionMode там есть 3 элемента, как сделать так что бы если у меня есть индекс нужного элемента я мог получить его, то есть есть 1, я получаю QCompleter::InlineCompletion
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.5.2011, 11:43
Сообщение #8


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


попробуй применить ассоциативный контейнер - QMap или std::map

за ключ возьми индекс , за значение значение - QCompleter::InlineCompletion

но всё равно непонятно, зачем это всё.

Поясню свою мысль:

class QCompleter
{
   enum CompletionMode
   {
        flag1, //=0
        flag2, //=1
        flag3, //=2
   };
};Language: cpp


заполняем комбобокс

1 элемент) строка="flag1" , данные=int(QCompleter::flag1)
2 элемент) строка="flag2" , данные=int(QCompleter::flag2)
3 элемент) строка="flag3" , данные=int(QCompleter::flag3)

пользователь выбирает элемент 2. Достаём данные, это у нас 1

QCompleter::CompletionMode result=QCompleter::CompletionMode(1);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 24.5.2011, 12:48
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 7:40