Russian Qt Forum
Май 05, 2024, 02:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: 1 [2] 3 4 5   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Программная разработка доски Судоку  (Прочитано 36011 раз)
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #15 : Май 30, 2012, 18:56 »

Похоже, если я захочу закрашивать или прикреплять картинку к отдельную ячейке, придется переопределять paintEvent, или делать делегат
Записан

gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #16 : Май 30, 2012, 19:15 »

Народ, а в чем тут ошибка??
Код:
    
QTableWidgetItem *item = table->item(0, 0);
item->setText("");

при выполнение этого кода происходит ошибка, не при компиляции
Записан

Bepec
Гость
« Ответ #17 : Май 30, 2012, 19:18 »

Вы неверно судите. И по сложности, и по перекрашиванию ячейки и делегату )
Достаточно просто отдать картинку в data  и он её сам отобразит как бэ.

Вы думаете разработчики Qt делали этот класс для отрисовки судоку ? Улыбающийся

Ахз где у вас тут ошибка. Вы лучше проект скидывайте, а не огрызки Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #18 : Май 30, 2012, 19:34 »

да память там не выделена для элемента скорее всего. проверь элемент на равенство 0.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #19 : Май 30, 2012, 20:22 »

Bepec вот:
Код:
    QTableWidget *table = new QTableWidget;
    table->setRowCount(9);
    table->setColumnCount(9);

    QTableWidgetItem *item = table->item(1, 1);
    item->setText("");
Записан

kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #20 : Май 30, 2012, 20:23 »

говорю же - память под элемент не выделена. предлагаю почитать документацию к QTableWidget.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #21 : Май 30, 2012, 20:24 »

Вы сейчас пытаетесь в несуществующий первый элемент запихнуть пустую строку.
Как думаете, у вас получится? Улыбающийся
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #22 : Май 30, 2012, 20:30 »

Конечно нет Смеющийся
Я и сам понял, что при компиляции проблем не возникло - значит дело с указателями и выделенной памяти Улыбающийся
только каким макаром можно получить доступ к элементу table?

или создать 81 объектов QTableWidgetItem, поместить их в table?

может было бы проще в качестве ячеек использовать виджет?
например label
или скажем создать что нибудь свое:
делаем виджет с 9-ю элементами, наследуем от QWidget, эти элементы
объедиены в layout?
« Последнее редактирование: Май 30, 2012, 20:37 от gil9red » Записан

kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #23 : Май 30, 2012, 20:56 »

в двойном цикле выделить память под все элементы таблицы, потом нужным выставить значение в индивидуальном порядке
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #24 : Май 30, 2012, 21:04 »

kambala, разумно Улыбающийся
Записан

gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #25 : Май 30, 2012, 21:08 »

И все же меня беспокоит то каким сделать эту игру, что лучше - использовать table или самому, вручную сделать написать нужный для этого код? Грустный
Хочется выбрать тот способ, что был бы и прост и элегантен, не хотелось бы устраивать шаманские пляски Улыбающийся
« Последнее редактирование: Май 30, 2012, 21:13 от gil9red » Записан

kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #26 : Май 30, 2012, 21:12 »

через таблицу будет проще. "самому вручную" придется много рисовать через QPainter.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #27 : Май 30, 2012, 21:15 »

kambala, я последую вашему совету Улыбающийся
Записан

ufna
Гость
« Ответ #28 : Май 30, 2012, 21:19 »

Я бы рекомендовал как раз через ручную отрисовку поработать. Самое то, чтобы обучаться на практическом примере.
Записан
ufna
Гость
« Ответ #29 : Май 30, 2012, 21:20 »

а через таблицу здесь делать.. это как зуб через попу удалять, имхо Улыбающийся

P.S. - когда-то ради прикола делал "аля сокобан" как раз таким методом, при этом много о Qt для себя открыв
« Последнее редактирование: Май 30, 2012, 21:22 от ufna » Записан
Страниц: 1 [2] 3 4 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 24.