2016-10-05 4 views
0

Я хочу иметь только текст для чтения в QTableWidget, поэтому я решил вставить QLabel в каждую ячейку. К сожалению, я получаю следующий вид:не удалось установить текст в ячейках qtablewidget

enter image description here

Вот код, который я использую для этого:

for (int row = 1; row < ui->currentSetting1TableWidget->rowCount(); row++) 
    for (int col = 1; col < ui->currentSetting1TableWidget->colorCount(); col++) { 
     QLabel *label = new QLabel(ui->currentSetting1TableWidget); 
     label->setText("mytext"); 
     ui->currentSetting1TableWidget->setCellWidget(row, col, label); 
    } 

Я вижу две проблемы:

  1. Когда я бегу в коде я получил кучу следующих предупреждений: QPaintDevice :: показатели: устройство не имеет метрической информации

  2. mytext отображается в ячейке заголовка угла. Почему это происходит? Что я делаю неправильно и как это исправить?

+1

Проверьте принятый ответ на этот вопрос: http://stackoverflow.com/questions/2574115/how-to-make-a-column-in-qtablewidget-read-only Я думаю, это может вам помочь –

+0

Если вы думаете об использовании 'QLabel' в любом из представлений, вы делаете это неправильно. Представление уже поддерживает отображение текста и изображений так же, как 'QLabel'. Элемент атрибута задает поведение каждого элемента данных. –

ответ

1

ui->currentSetting1TableWidget->colorCount() У вас есть опечатка с завершением кода. Вы хотели columnCount(). Поскольку вы указываете неправильное размещение для дополнительного (colorCount() должно быть выше columnCount()), эти метки присваиваются координатам (0,0) или что-то очень близкое.

Вы также выполняете итерацию с row = 1, но строки индексируются с 0, поэтому у вас нет меток в первой строке. Имеет смысл пропустить первый столбец и перебрать их из 1 из-за флажков.

+1

@flashburn также нет необходимости в ярлыке, потому что вы можете установить столбец в не редактируемый с помощью QFlags/use QTableWidgetItem – deW1

+0

@ deW1 Можете ли вы расширить «использовать QTableWidgetItem»? Что вы подразумеваете под этим? – flashburn

+2

@flashburn https://gist.github.com/deW1/2ebfadaefc7c5682b2896e6d8b540417 например, – deW1

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