2016-03-09 4 views
1

Я новичок в Qt и имею только немного опыта на C++ и занимаюсь разработкой настольного приложения.Qt tableWidget ссылка на столбец по имени или псевдониму

Я использую tableWidget, и мой код заполняет ячейки указателями (строки, столбца). В данный момент это нормально, но я вижу, что если мне нужно добавить или переместить столбец, я буду иметь весомое время, фиксируя все указатели, посыпанные моим кодом.

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

ui->tableWidget1->setItem(0, 3, new QTableWidgetItem(ui->lblWeight->text())); 

я мог что-то больше похоже

ui->tableWidget1->setItem(0, "colWeight", new QTableWidgetItem(ui->lblWeight->text())); 

где "colWeight" был назначен в колонке 3?

ответ

2

Если псевдонимы не изменяются во время выполнения, я хотел бы использовать перечисление вместо переменной.

enum Column 
{ 
    ColumnA = 0, 
    ColumnB = 1, 
    ColumnC = 2 
}; 

ui->tableWidget1->setItem(0, ColumnA, new QTableWidgetItem(ui->lblWeight->text())); 
1

colWeight Использование в качестве переменной:

int colWeight = 3; // Your column indicator 
... 
ui->tableWidget1->setItem(0, colWeight, new QTableWidgetItem(ui->lblWeight->text())); 
+0

Это хорошее низкотехнологичное решение, спасибо! Как сделать переменные глобальными по охвату. Я искал это и не совсем понял. – Transistor

+0

, если у вас не будет более одного экземпляра виджета для вашей таблицы, объявление переменной 'static' дает вам более легкий доступ. Просто будьте осторожны с именованием и отслеживайте, как и когда вы изменяете переменные. – mrLucius

Смежные вопросы