Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT] Помогите в создании игры балда. 
:(
    Опции темы
Vaz007
Дата 13.5.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



Я создаю игру балда, только начал пользоваться QT. Создал QT4 GUI Application. Создал  поле 5х5 из pushbuttons, и создал 33 кнопки((pushbuttons) 33 буквы начиная с А заканчивая  Я). Я не могу понять как надо сделать , чтобы при нажатии например на первую кнопку из 33 кнопок (буква А), потом  выбрать из поля любую кнопку, чтобы на ней отобразилась буква.Подскажите пожалуйста.
PM MAIL Jabber   Вверх
CompWorm
Дата 13.5.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



если и те и другие pushbuttons то хз... они ведь теряют фокус, а надо сохранить состояние нажатости...
я б сделал буквы радио-батонами... их можно даже записать в массив arraylist какой-нибудь. а при нажатии на одну из 25 пуш-батонов поля - проверять в цикле, какая буква checked и подсовывать ее.

можно напрячься и сделать массив 25 динамических пуш-батонов и сунуть вышеописанную проверку в их общее событие clicked и ориентироваться по индексу... по крайней мере в бейсике и дельфи это прокатывает  smile думаю, и в си можно. smile 
тогда код станет в 25 раз короче)))

ЗЫ но если ты только начинаешь программировать, то для начала сделай 25 проверок clicked))

Это сообщение отредактировал(а) CompWorm - 13.5.2009, 20:55


--------------------
PM MAIL   Вверх
SABROG
Дата 14.5.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Я бы вообще сам рисовал через paintEvent, это сложнее, но правильнее, игра будет выглядеть одинаково
на всех платформах, независимо от стилей.

Цитата

они ведь теряют фокус, а надо сохранить состояние нажатости...

У кнопки есть состояния и ими можно управлять:

void setCheckable ( bool )
void setChecked ( bool )

Цитата

их можно даже записать в массив arraylist какой-нибудь.

Цитата

то для начала сделай 25 проверок clicked))

Кнопки можно сгруппировать через QButtonGroup и присоединить всего один слот к buttonClicked, 
нажатие на любую кнопку будет генерить сигнал, который передаст указатель на кнопку или id (как выберешь).
Альтернатива QSignalMapper.

Цитата

не могу понять как надо сделать , чтобы при нажатии например на первую кнопку из 33 кнопок (буква А), потом  выбрать из поля любую кнопку, чтобы на ней отобразилась буква

Тут 2 варианта: 
QAbstractButton * QButtonGroup::checkedButton () const

или в слоте на нажатие кнопки устанавливать некий глобальный указатель типа QPushButton *lastClicked.

Вот нашел онлайн-балду.

http://www.naturalist.ru/Balda/balda.html


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 15.5.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(SABROG @  14.5.2009,  12:10 Найти цитируемый пост)
Я бы вообще сам рисовал через paintEvent, это сложнее, но правильнее, игра будет выглядеть одинаково
на всех платформах, независимо от стилей.

Я бы тоже рисовал, но через Graphics View Framework smile Легче обрабатывать события от элементов.


--------------------
PM MAIL ICQ Skype   Вверх
Vaz007
Дата 15.5.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



А как сделать ,чтобы можно было выводить русские буквы в поле??
PM MAIL Jabber   Вверх
CompWorm
Дата 15.5.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



я делаю так:
Код

int main (...) {
...
QTextCodec *codec = QTextCodec::codecFromName("cp1251");
QTextCodec::setCodecForTr(codec);
...
}

и потом так:
Цитата

***.text(QObject::tr("Халоу Ворлд!"));



--------------------
PM MAIL   Вверх
Любитель
Дата 15.5.2009, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



А почему не юзать (ну.. как-то граммотней с точки зрения общепринятых стандартов) в коде инглиш, а транслейтить стандартными средствами?! Qt же к этом прям подталкивает! smile


--------------------
PM MAIL ICQ Skype   Вверх
Vaz007
Дата 16.5.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



Сделал кнопку новая игра,и хочу чтобы при нажатии на нее,  все что я писал в поле стиралось и чистое поле было , для того чтобы опять вводить. как это сделать, подскажите пожалуйста???
PM MAIL Jabber   Вверх
Любитель
Дата 16.5.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Vaz007, создавай новую тему для нового вопроса!


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1182 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.