首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QTableWidget单元格内容的显示解决方案

2012-01-22 
QTableWidget单元格内容的显示我想将表里的特定单元格的字符串翻转90度显示,如┯变为┝。有类似的问在QWidget

QTableWidget单元格内容的显示
我想将表里的特定单元格的字符串翻转90度显示,如┯变为┝。
有类似的问在QWidget上实现字符旋转,可以用QPainter重绘来实现。我想用QPainter来实现,但一直没成功,我想原因应该是:QTableWidgetItem不属于QWIdget,所以没法用QPainter来实现。
请各位指点一下。

[解决办法]
我拼了一段测试代码出来,效果是把字旋转了,你看看是不是你需要的

C/C++ code
class TableDelegete:public QStyledItemDelegate{public:    virtual void paint (QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const{        QStyleOptionViewItem opt = option;        float m11,m12,m13,m21,m22,m23,m31,m32,m33;        m13 = 0.f;        m23 = 0.f;        m33 = 1.f;        m11 = 0.f;        m21 = 1.f;        m31 = 0.f;        m12 = 1.f;        m22 = 0.f;        m32 = 0.f;        QTransform trans;        trans.setMatrix(m11,m12,m13,m21,m22,m23,m31,m32,m33);        painter->setTransform(trans,false);        QStyledItemDelegate::paint(painter, opt, index);    }    virtual QSize sizeHint (const QStyleOptionViewItem& option, const QModelIndex & index ) const{        (void)index;        QStyleOptionViewItem opt = option;        return QSize(40,40);    }};MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    m_pTable = new QTableWidget(this);    m_pTable->setColumnCount(1);    m_pTable->setRowCount(1);    m_pTable->setColumnWidth(0,40);    m_pTable->setRowHeight(0,40);    QTableWidgetItem* item = new QTableWidgetItem(QString("1"));    m_pTable->setItem(0,0,item);    TableDelegete* dele = new TableDelegete();    m_pTable->setItemDelegate(dele);    m_pTable->setFixedSize(100,100);} 

热点排行