我正在学习QT并且必须设计一个这样的表
我需要" m2"用" 2"作为上标。
这是我的代码:
ui.tableWidget->horizontalHeaderItem(0)->setText("Date");
ui.tableWidget->horizontalHeaderItem(0)->setBackgroundColor(QColor(217, 217, 217));
ui.tableWidget->horizontalHeaderItem(1)->setText("House address");
ui.tableWidget->horizontalHeaderItem(1)->setBackgroundColor(QColor(217, 217, 217));
ui.tableWidget->horizontalHeaderItem(2)->setText("Area \n [m\u00B2]");
ui.tableWidget->horizontalHeaderItem(2)->setBackgroundColor(QColor(217, 217, 217));
ui.tableWidget->horizontalHeaderItem(3)->setText("Price \n [USD]");
ui.tableWidget->horizontalHeaderItem(3)->setBackgroundColor(QColor(217, 217, 217));
ui.tableWidget->horizontalHeaderItem(4)->setText("Price/Area \n [USD/m\u00B2]");
ui.tableWidget->horizontalHeaderItem(4)->setBackgroundColor(QColor(217, 217, 217));
我用过" \ u00B2"为" 2"作为上标但它不起作用,背景颜色也不会改变。请帮助我,非常感谢!
答案 0 :(得分:0)
尝试:
ui.tableWidget->horizontalHeaderItem(2)->setText(QString::fromUtf8("Area \n [m\u00B2]"));
答案 1 :(得分:0)
尝试QString("Area \n [m%1]").arg(QChar(0x00B2))
或QString("Area \n [%1]").arg(QChar(0x33A1))
。它应该适用于任何源编码。
如果它不起作用,也许您的字体不支持显示此符号。如果没有其他方法,您可以尝试使用HTML模仿QLabel标题:"<B> Area <BR> [m<SUP>2</SUP>] </B>"
。请记住,将QWidgets设置为QTableWidget通常很难看并且可能很慢。你的架构会很糟糕。
答案 2 :(得分:0)
-LD:\foo -lid3v2
然后
const char s[] = {
0x6D, // m
0xC2, 0xB2, // superscript two
0x00 // NUL terminator
};
QString str = QString::fromUtf8(s);