crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Прорисовывание кнопок
Гость_nazavrik_*
сообщение 23.5.2010, 14:37
Сообщение #1





Гости








    


Добрый день!

Я только начал разбираться с QT. У меня следующий вопрос: с помощью чего можно нарисовать игровое поле сапера? Какими средствами? Самое очевидное - прорисовывать каждую клетку и цветом имитировать нажатие. Но может быть есть более элегантные и глазу приятные способы?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.5.2010, 17:49
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3284
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Кнопками совсем не обязательно.
Рисуешь поле сапера на форме например 16x16. Создаешь двухмерный массив, в котором у тебя будут храниться статусы клеток. Добавляешь обработчик клика мышкой (правой левой) по полю (в нем получаешь координаты точки на которую было нажатие, и из этих координат не сложно посчитать по какой клетке было нажатие). Ну и для красоты добавляешь обработчики нажатия клавишь мышки и отпускания, для отрисовки нажатой кнопки и возврата ее в исходное положение...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.5.2010, 19:17
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9648
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


По-моему надо на Графическом представлении такое делать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
alex977
  опции профиля:
сообщение 23.5.2010, 20:36
Сообщение #4


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

Группа: Участник
Сообщений: 310
Регистрация: 19.6.2008
Из: Россия, МО, г.Мытищи
Пользователь №: 206

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




Репутация:   8  


В Qt 4.6 в разделе примеров по Graphics View есть недокументированный пример anchorlayout.
Можно посмотреть его.

http://doc.trolltech.com/main-snapshot/gra...chorlayout.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_nazavrik_*
сообщение 24.5.2010, 10:12
Сообщение #5





Гости








    


Всем спасибо за советы!

Я вчера сделал несколько попыток отрисовать поле, вот что получилось:

При помощи QPushButton: http://s56.radikal.ru/i154/1005/8b/73a835797fe4.jpg

При помощи QLabel: http://s001.radikal.ru/i193/1005/fb/c8d5af3859f7.jpg

Первый вариант меня бы эстетически устроил, если бы не зазор между кнопками. Это как-то можно исправить стандартными средствами?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_nazavrik_*
сообщение 24.5.2010, 10:27
Сообщение #6





Гости








    


Цитата(nazavrik @ 24.5.2010, 10:12) *
Первый вариант меня бы эстетически устроил, если бы не зазор между кнопками. Это как-то можно исправить стандартными средствами?


Нашел) setSpacing(pix);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_nazavrik_*
сообщение 24.5.2010, 11:57
Сообщение #7





Гости








    


А вот с тем, чтобы зафиксировать размер главного окна, у меня возникли проблемы.

Как запретить минимизировать и максимизировать окно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.5.2010, 12:15
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9648
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Гость_nazavrik_* @ 24.5.2010, 15:57) *
Как запретить минимизировать и максимизировать окно?
QWidget::setFixedSize()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 21.10.2018, 8:29