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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QComboTableItem в Qt5  (Прочитано 5872 раз)
barm12345
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« : Ноябрь 27, 2023, 15:10 »

Добрый день!

Не получается правильно реализовать следующую конструкцию в Qt5:

Код Qt3:

std::set< std::string > Enum; //Допустимые значения

QTable * Table = MyTable;
QTableItem *Value_Cell;

QStringList *ComboBoxList = new QStringList();
    std::set< std::string >::iterator iter;
    iter = mydata.Enum.begin();
    while(iter != mydata.Enum.end() ) ComboBoxList->append(*iter++ );
    QComboTableItem *CBValue_Cell;
    CBValue_Cell = new QComboTableItem(Table, *ComboBoxList, false);
    CBValue_Cell->setCurrentItem(MyValue );
    Value_Cell = CBValue_Cell; - этот момент интересует как сделать...

  Table->insertRows(Table->numRows() );
  Table->setText(Table->numRows()-1, 0, текст в 0 столбце );
  Table->setItem(Table->numRows()-1, 1, Value_Cell - значение в 1 столбце);

В таблице 0 столбец - параметр, 1 столбец - его значение, которое может быть или string или ComboBox,
точно указать, в какой ячейке что - не могу, параметры меняются.

Пробую через setCellWidget :
QTableWidgetItem *Value_Cell;
QComboBox* ValueBox;
QStringList ComboBoxList;
Value_Box = new QComboBox(Table);
Value_Box->addItems(ComboBoxList);
ValueBox->setCurrentText(MyValue);
Table->setCellWidget(Table->rowCount()-1,1,Value_Box);

Table->insertRow(Table->rowCount());
Table->setItem(Table->rowCount()-1, 1, Value_Cell);

ComboBox вставляется со сдвигом вниз, не в ту ячейку
Записан
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #1 : Декабрь 01, 2023, 08:44 »

Во-первых, для кода есть отдельный тег.
Во-вторых,
ComboBox вставляется со сдвигом вниз, не в ту ячейку
По приведённым фрагментам невозможно понять, где что вставляется. Судя по всему, последние 2 строки из другого места.
Записан

Мои проекты на Qt: DoubleContact, LInvert
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Декабрь 04, 2023, 09:57 »

кажется, проблема в том, что ты пытаешься каждый раз засунуть один и тот же объект Value_Box в каждую ячейку, а надо для каждой ячейки создавать новый объект через new QComboBox
Записан

Изучением 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
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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