Автоматическое изменение размера столбцов до размера QTableView

Простейший: сбрасывает всю коллекцию в Set (используя конструктор Set (Collection) или Set.addAll), а затем посмотрите, имеет ли Set тот же размер, что и ArrayList.

List<Integer> list = ...;
Set<Integer> set = new HashSet<Integer>(list);

if(set.size() < list.size()){
    /* There are duplicates */
}

Обновить : Если я правильно понимаю ваш вопрос, у вас есть 2d-массив Block, как в

Block table [] [];

, и вы хотите определить,

В этом случае я мог бы сделать следующее, считая, что Block реализует «equals» и «hashCode» правильно:

for (Block[] row : table) {
   Set set = new HashSet<Block>(); 
   for (Block cell : row) {
      set.add(cell);
   }
   if (set.size() < 6) { //has duplicate
   }
}

Я не на 100% уверен в синтаксисе, поэтому было бы безопаснее записать его как

for (int i = 0; i < 6; i++) {
   Set set = new HashSet<Block>(); 
   for (int j = 0; j < 6; j++)
    set.add(table[i][j]);

...

23
задан Lennart Rolland 20 May 2019 в 16:06
поделиться

1 ответ

Этот код одинаково растягивает каждый столбец так, чтобы он соответствовал ширине таблицы.

table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

Документы:

51
ответ дан Hi I'm Frogatto 20 May 2019 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: