2015-01-15 3 views
1

Я пишу плагин C++ для существующего приложения, где мне нужно отобразить окно, содержащее QTableWidget с использованием Qt.C++ Qt Элемент QTableWidget перемещается при изменении размера столбца

Вот отрывок из моего рабочего кода, где я строю QTableWidget и заполняю ячейки.

tableWidget->setRowCount(0); // clear tablewidget 
tableWidget->clearContents(); 

tableWidget->setColumnCount(5); 
tableWidget->setRowCount(2); 

QStringList header; 
header << "Date" << "Owner" << "Type" << "Folder" << "Path"; 
tableWidget->verticalHeader()->setDefaultSectionSize(20); 
tableWidget->setHorizontalHeaderLabels(header); 

tableWidget->setItem(0,0,new QTableWidgetItem(QString("dog"))); 
tableWidget->setItem(0,1,new QTableWidgetItem(QString("cat"))); 
tableWidget->setItem(0,2,new QTableWidgetItem(QString("frog"))); 
tableWidget->setItem(1,0,new QTableWidgetItem(QString("shark"))); 

tableWidget->item(0,0)->setTextAlignment(Qt::AlignLeft); 
tableWidget->item(0,1)->setTextAlignment(Qt::AlignLeft); 
tableWidget->item(0,2)->setTextAlignment(Qt::AlignLeft); 

tableWidget->resizeColumnsToContents(); 

Он работает должным образом, за исключением того, что данные внутри каждого последующего столбца перемещаются дальше, чем предыдущий столбец. Это может быть преувеличено, когда вы изменяете размер столбца и видите данные в столбцах справа «слайд» еще дальше.

Вот 2 скриншота эффекта (до и после изменения размера столбца). Вы можете видеть, как слова «кошка» и «лягушка» переместились больше вправо, чем обычно.

enter image description here

enter image description here

Что я делаю неправильно? Я хочу, чтобы текст каждой ячейки был выровнен слева от каждого столбца.

ответ

0

Корень проблемы, похоже, связан с настройками дисплея Windows. Настройка моего текстового дисплея для ноутбука была установлена ​​на «Medium - 125%».
Когда я вернул его в «Меньше - 100%», проблема исчезла.

Я бы по-прежнему хотел, чтобы моя программа работала правильно, если пользователь должен использовать текст 125%, но по крайней мере теперь я знаю причину.

Кто-нибудь знает, как я предотвратить указанную проблему при использовании 125% текста?

enter image description here

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