• 6935阅读
  • 4回复

[提问]Qt中设置QTreeWidget表头的背景颜色 [复制链接]

上一主题 下一主题
离线小鸟一只
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-09
关键词: backgroundcolor
RT,在QT中如何设置QTreeWidget表头的背景颜色,还有就是如何设置Command Link Button被点击时的颜色。


多谢!


离线pxiao_xiao

只看该作者 1楼 发表于: 2013-03-09
void QTreeWidgetItem::setBackgroundColor ( int column, const QColor & color )
QTreeWidgetItem * headerItem () const
离线小鸟一只
只看该作者 2楼 发表于: 2013-03-09
回 1楼(pxiao_xiao) 的帖子
兄台,能否详细点,多谢!
离线小鸟一只
只看该作者 3楼 发表于: 2013-03-13
回 1楼(pxiao_xiao) 的帖子
哈哈,兄弟,我按你的方法试了一下,结果颜色没变,代码如下,
QTreeWidgetItem* header = ui.treeWidget->headerItem();
for(int i = 0; i < 6; i++)
{
        header->setBackgroundColor(i,QColor(255,255,255));
}

看一下有问题吗?
离线pxiao_xiao

只看该作者 4楼 发表于: 2013-03-14
网上没有找到可行的解决方法
你可以试着用treeView写个自己的tree控件
如果不想 看分割线以下
------------------------------------------------------------------
用QHeaderView替代
QHeaderView *head = treeWidget->header();
QLabel *label = new QMyLabel("MyTree");
QHBoxLayout *lay = new QHBoxLayout;
lay->setMargin(0);
lay->addWidget(label);
head->setLayout(lay);

自定义类:
class QMyLabel : public QLabel
{
public:
    QMyLabel(const QString & text , QWidget * parent = 0);
    ~QMyLabel();

protected:
    void paintEvent(QPaintEvent * event);
    
};

QMyLabel::QMyLabel(const QString & text , QWidget * parent) : QLabel(text , parent)
{
    
}

QMyLabel::~QMyLabel()
{
    
}

void QMyLabel::paintEvent(QPaintEvent * event)
{
    QPainter painter(this);
    painter.drawPixmap ( 1, 1, this->width( )-2, this->height()-2, QPixmap(":/Background.png") );  //自己做个单色图片
    painter.drawText ( 3 , (this->height()/7)*5, this->text() );
}
快速回复
限100 字节
 
上一个 下一个