Пропадают иконки в таблице., После разворачивания из трея. |
Здравствуйте, гость ( Вход | Регистрация )
Пропадают иконки в таблице., После разворачивания из трея. |
abc |
17.3.2011, 21:27
Сообщение
#11
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
я только к тому говорю, что баги нет, если QTableWidgetItem в ячейке есть, scrollToItem отработает. У тебя там виджет, ты и пролетаешь. Может быть, сподручно установить и итем, и виджет в одну ячейку.
QTableWidgetItem* Item = new QTableWidgetItem(); Item->tableWidget()->setCellWidget(i, 0, removeButtons[i]); в данном коде итем не принадлежит никакой таблице, а ты требуешь у него указатель на неё. что он может тебе предложить? Зачем наследовал QToolButton? enum { NumDigitButtons = 1000 }; Button *removeButtons[NumDigitButtons]; Зачем enum? зачем массив, а не какой-нибудь контейнер, типа QList? if (onlynames_checkBox->checkState()==Qt::Checked) Item->setText(QString(allFiles.at(i).fileName())); if (onlynames_checkBox->checkState()==Qt::Unchecked) Item->setText(QString(allFiles.at(i).absoluteFilePath())); второй if меняешь на else, и код становится короче и понятнее плюс у чекбокса есть метод isChecked() Сообщение отредактировал abc - 17.3.2011, 21:33 |
|
|
RazrFalcon |
17.3.2011, 21:35
Сообщение
#12
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
QList - уже
На счет checkBox - сделаю. Это же не финальная версия, я пока просто тестю. >>Может быть, сподручно установить и итем, и виджет в одну ячейку. Это как? Лэйбл с иконкой и текстом? Но это же тоже виджет. А мне нужна возможность удаления строк. Вот и все. |
|
|
abc |
17.3.2011, 21:40
Сообщение
#13
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
имею в виду, чтоб подзасунуть в одну ячейку пустой QTableWidgetItem* и туда же твой виджет... если так можно, будет скролить к этой ячейке... но это, в общем, к делу-то не относится - решаем, почему кнопки у тебя убегают. Почему?) кнопки могут убежать, потому что они стёрлись из памяти, другого выхода у них нет
что за цикл в digitClicked()? Сообщение отредактировал abc - 17.3.2011, 21:44 |
|
|
RazrFalcon |
17.3.2011, 21:48
Сообщение
#14
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
>>что за цикл в digitClicked()?
после удаления строки, кнопки теряют порядок (1 2 5 8 и тд.), по этому я их пересоздаю. Другого способа не придумал... Решением может быть: 1) другой способ вообще, я про удалении строк 2) контекстное меню для QTableWidget, которого нет =( |
|
|
abc |
17.3.2011, 21:50
Сообщение
#15
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
так ведь ты не удаляешь из removeButtons[i] кнопку, удали и вот тебе порядок
конечно, пересоздавать все кнопки это анархия зачем передаешь слот: removeButtons[i] = createButton("Del", SLOT(digitClicked()),i); соедини сигнал clicked() кнопки и этот слот при создании кнопки Сообщение отредактировал abc - 17.3.2011, 22:05 |
|
|
RazrFalcon |
17.3.2011, 21:59
Сообщение
#16
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
так ведь ты не удаляешь из removeButtons[i] кнопку, удали и вот тебе порядок конечно, пересоздавать все кнопки это анархия Понял, ступил. Поправил. Но проблема то зарыта в трее, если так листать, то все норм, а вот если свернуть прогу в трей и нажимать по иконке, по нажатию переходит на следующую строку, рэндомную, то происходит это исчезание. А еще может быть что то в духе: |
|
|
abc |
17.3.2011, 22:14
Сообщение
#17
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
я не понимаю твоё описание, по пунктам опиши действия подробно
и что значит "может быть что-то в духе"? где код рандомного перехода? Сообщение отредактировал abc - 17.3.2011, 22:25 |
|
|
RazrFalcon |
17.3.2011, 22:28
Сообщение
#18
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
я не понимаю твоё описание, по пунктам опиши действия подробно 1) Программа заполняет таблицу списком изображений. Запускается свернутой в трей. 2) По нажатии на иконке в трее происходит переход на следующую строку в таблице. 3) Разворачиваем из трея и видим то, что половина кнопок пропала. Если не сворачивать в трей и нажимать по иконке в трее - тоже будет листать таблицу, но иконки пропадать не будут. Листает в перемешку, а не последовательно. и что значит "может быть что-то в духе"? Имеется в виду, что то что на скриншоте показано - случается иногда, из-за того что в первой колонке кнопки.
|
|
|
abc |
17.3.2011, 22:35
Сообщение
#19
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
По нажатии на иконке в трее происходит переход на следующую строку в таблице. Листает в перемешку, а не последовательно. так по какому закону листает-то? рандом? код дай Разворачиваем из трея и видим то, что половина кнопок пропала. которая половина? какая закономерность? про скриншот всё равно не понял.. я же не знаю чем "обычно" отличается от "иногда".. какое поведение нормальное, а какое на скриншоте |
|
|
RazrFalcon |
17.3.2011, 22:50
Сообщение
#20
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Сам запутался и людей запутал
Решил пойти по пути наименьшего сопротивления. Сделал QList<QLabel *>, каждому присвоил иконку. Затем их впихнул в 1-й столбец. Сделал обработчик нажатия, ака cellClicked(int,int). Потом в самом слоте смотрим: если нажато по 1-у столбцу - удаляем строку, если не по первому - ничего не делаем. Функции нужные выполняет. Но теперь QLabel пропадает >>которая половина? какая закономерность? не ровно половина, но где то посредине, обычно. Я бы сказал что один раз пропадает, к примеру, верхняя, то во второй пропадет нижняя, вот так по переменно. Если долго клацать - пропадают все. Главное: пропадает только когда свернуто в трей. Так как сейчас обрабатывается нажатие на таблицу, а не кнопку, то после клика по "пустому месту", где должна быть иконка, снова появляются все иконки. Обработчик трея. Раскрывающийся текст
Сообщение отредактировал RazrFalcon - 17.3.2011, 22:52 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 10:11 |