Russian Qt Forum
Октября 18, 2025, 09:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
   Начало   Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
Страниц: 1 [2] 3 4 ... 10
 11 
 : Сентября 20, 2025, 13:16 
Автор KSergeyP - Последний ответ от kkmspb
Наследоваться от QSqlRelationalTableModel и переопределить selectStatement например.

 12 
 : Сентября 19, 2025, 12:09 
Автор Anton - Последний ответ от kkmspb
QProgressBar тормозит при setValue (после выхода именно из QProgressBar::paintEvent) 200-300ms

решается только созданием диалога с нашим ProgressBarDlg БЕЗ парента !!

Это работает нормально, и к тому же стили (setStyleSheet) начинают действовать нормально для QProgressBar

и центрирование по середине тоже начинает работать нормально

QProgressBar использует какую-то анимацию, которую не отключить, но причина не в этом, а в том, что есть какая-то связь с родителем, которую пока не раскрутил

 13 
 : Сентября 15, 2025, 12:14 
Автор demaker - Последний ответ от demaker

Спасибо , да!

Код
C++ (Qt)
setSelectionBehavior(QAbstractItemView::SelectRows);
setSelectionMode(QAbstractItemView::ExtendedSelection);
 

 14 
 : Сентября 13, 2025, 20:37 
Автор demaker - Последний ответ от Авварон
я про https://doc.qt.io/qt-6/qabstractitemview.html#SelectionMode-enum

 15 
 : Сентября 13, 2025, 20:34 
Автор demaker - Последний ответ от demaker

Это связано с тем что tablemodel привязана к treview?
Или в коде проблема?






в коде, все вью умеют в разные селекшоны
проверь что флаги позволяют выделать несколько строк вообще


Делаю так

Код
C++ (Qt)
 
Qt::ItemFlags MyTableModel::flags(const QModelIndex &index) const
{
   if (!index.isValid())
       return Qt::NoItemFlags;
 
   return QAbstractTableModel::flags(index) | Qt::ItemIsSelectable;
 
}
 

Причем если поменять QAbstractTableModel на
QAbstractItemModel будет падать приложение

 16 
 : Сентября 13, 2025, 19:13 
Автор demaker - Последний ответ от Авварон

Это связано с тем что tablemodel привязана к treview?
Или в коде проблема?



в коде, все вью умеют в разные селекшоны
проверь что флаги позволяют выделать несколько строк вообще

 17 
 : Сентября 13, 2025, 00:58 
Автор demaker - Последний ответ от demaker
Используй QTreeView с uniformRowHeights=true https://doc.qt.io/qt-6/qtreeview.html#uniformRowHeights-prop - так оно будет вычислять скроллбар как firstRowHeight*rowCount() а не суммировать в цикле.

Не получается выделить несколько строк.

Делаю так:
Код
C++ (Qt)
void  TreeView::mousePressEvent(QMouseEvent *e)
{
   if(e->modifiers() & Qt::Controlmodifier)
  {
      QModelIndex idx = indexAt(e->pos());
 
      QModelIndex topLeft = model()->index(idx.row(), 0, QModelIndex());
      QModelIndex bottomRight = model()->index(idx.row(), model()->columnCount() - 1, QModelIndex());
 
      QItemSelection selection(topLeft, bottomRight);
      selectionModel()->select(selection, QItemSelectionModel::Select);
  }
 
  return QTreeView::mousePressEvent(e);
}
 

Это связано с тем что tablemodel привязана к treview?
Или в коде проблема?


 18 
 : Сентября 13, 2025, 00:52 
Автор demaker - Последний ответ от demaker
Ты ещё пишешь про unordered_map->vector. Если там простой std::copy, то полагаю, что строки в векторе могут перетасовываться = достаточно сложно вычислить какие индексы в модели обновились

Делаю вот так

Код
C++ (Qt)
 
void container::add_mapping(Key key, Type &value)
{
   std::lock_guard<std::mutex> l(mutex);
   auto it = unordered_map.find(key);
   if(it == unordered_map.end()){
          Type *data = new Type;
          unordered_map.insert(std::make_pair(key, data));
          vectror.push_back(data);    
   }
   else{
         *(it.operator->()->second) = value;
   }
 
}
 
std::vector<Type> container::get_vector()
{
      std::lock_guard<std::mutex> l(mutex);
      std::vector<Type> v;
      for(auto e : vector){
           v.push_back(*e);
      }      
      return v;
}
 

 19 
 : Сентября 12, 2025, 14:19 
Автор demaker - Последний ответ от __Heaven__
Ты ещё пишешь про unordered_map->vector. Если там простой std::copy, то полагаю, что строки в векторе могут перетасовываться = достаточно сложно вычислить какие индексы в модели обновились

 20 
 : Сентября 12, 2025, 14:12 
Автор demaker - Последний ответ от __Heaven__
Кажется, что в модельке не стоит обращаться ко view

Если правильно понял, ты тут обновляешь больше ячеек чем сообщаешь через dataChanged. Оно может быть критичным для моделей сортировки и фильтрации

Страниц: 1 [2] 3 4 ... 10

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