Hi guys,

i have a question:
I have a table

QTableWidget* m_ErgebnisTabelle;

This table will be shown in the GUI in a tabWidget.
In this itembased table , i will show some result values of some calculations.

QTableWidgetItem * protoitem = new QTableWidgetItem(aktuellesItem);

The text os white. But i want a text with a black outline.
I found a solution: https://www.qtcentre.org/threads/341...ent-background
In this solution a paintevent is used, but with a defined text. i have different values after every calculation.
And this post is 9 years old, maybe there is now another way to handle this - i dont know.

Here some code snippets, of how i setup and plot the table. The only thing missing, is the outlines.

Qt Code:
  1. void Ergebnisse::setupLayout()
  2. {
  3. m_ergebnisLayout = new QVBoxLayout();
  4.  
  5. QTabWidget* tabWidget = new QTabWidget();
  6. m_ergebnisLayout->addWidget(tabWidget);
  7.  
  8. m_ErgebnisTabelle = new QTableWidget(1, 3, this);
  9. QStringList header = {"ID","Ergebnis A","Ergebnis B"};
  10. m_ErgebnisTabelle->setHorizontalHeaderLabels(header);
  11. m_ErgebnisTabelle->verticalHeader()->hide();
  12.  
  13. QVBoxLayout* tab_vLayout = new QVBoxLayout();
  14. tab_vLayout->addWidget(m_ErgebnisTabelle);
  15.  
  16. QWidget* tableTab = new QWidget();
  17. tableTab->setLayout(tab_vLayout);
  18. tabWidget->addTab(tableTab, "Tabelle");
  19.  
  20. .... more tabs ....
  21. }
  22.  
  23.  
  24.  
  25. void Ergebnisse::plotErgebnisTabelle(QStringList header)
  26. {
  27. m_ErgebnisTabelle->clear();
  28. int numberItems = m_alleErgebnisse.size();
  29.  
  30. int rowCount = 0;
  31. QMapIterator<int,QPair<double,double>> iter_erg(m_alleErgebnisse);
  32. while (iter_erg.hasNext()){
  33. iter_erg.next();
  34. for(int i = 0; i < header.size(); i++){
  35. QString aktuellesItem;
  36. if(i == 0){
  37. aktuellesItem = QString::number(iter_erg.key());
  38. }
  39. else if(i == 1)
  40. {
  41. double aktuellerWert = iter_erg.value().first;
  42. aktuellesItem = (QString::number(aktuellerWert));
  43. }
  44. else
  45. {
  46. double aktuellerWert = iter_erg.value().second;
  47. aktuellesItem = (QString::number(aktuellerWert));
  48. }
  49.  
  50. QTableWidgetItem * protoitem = new QTableWidgetItem(aktuellesItem);
  51. protoitem->setTextAlignment(Qt::AlignCenter);
  52. m_ErgebnisTabelle->setItem(rowCount,i,protoitem);
  53. }
  54. rowCount++;
  55. }
  56. }
To copy to clipboard, switch view to plain text mode