![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_nazavrik_* |
![]()
Сообщение
#1
|
Гости ![]() |
Добрый день!
Я только начал разбираться с QT. У меня следующий вопрос: с помощью чего можно нарисовать игровое поле сапера? Какими средствами? Самое очевидное - прорисовывать каждую клетку и цветом имитировать нажатие. Но может быть есть более элегантные и глазу приятные способы? |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Кнопками совсем не обязательно.
Рисуешь поле сапера на форме например 16x16. Создаешь двухмерный массив, в котором у тебя будут храниться статусы клеток. Добавляешь обработчик клика мышкой (правой левой) по полю (в нем получаешь координаты точки на которую было нажатие, и из этих координат не сложно посчитать по какой клетке было нажатие). Ну и для красоты добавляешь обработчики нажатия клавишь мышки и отпускания, для отрисовки нажатой кнопки и возврата ее в исходное положение... |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
По-моему надо на Графическом представлении такое делать
|
|
|
alex977 |
![]()
Сообщение
#4
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 310 Регистрация: 19.6.2008 Из: Россия, МО, г.Мытищи Пользователь №: 206 Спасибо сказали: 77 раз(а) Репутация: ![]() ![]() ![]() |
В Qt 4.6 в разделе примеров по Graphics View есть недокументированный пример anchorlayout.
Можно посмотреть его. http://doc.trolltech.com/main-snapshot/gra...chorlayout.html |
|
|
Гость_nazavrik_* |
![]()
Сообщение
#5
|
Гости ![]() |
Всем спасибо за советы!
Я вчера сделал несколько попыток отрисовать поле, вот что получилось: При помощи QPushButton: http://s56.radikal.ru/i154/1005/8b/73a835797fe4.jpg При помощи QLabel: http://s001.radikal.ru/i193/1005/fb/c8d5af3859f7.jpg Первый вариант меня бы эстетически устроил, если бы не зазор между кнопками. Это как-то можно исправить стандартными средствами? |
|
|
Гость_nazavrik_* |
![]()
Сообщение
#6
|
Гости ![]() |
|
|
|
Гость_nazavrik_* |
![]()
Сообщение
#7
|
Гости ![]() |
А вот с тем, чтобы зафиксировать размер главного окна, у меня возникли проблемы.
Как запретить минимизировать и максимизировать окно? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.12.2023, 7:13 |