您的位置:首页 > 编程语言 > Qt开发

创建QTreeWidget组件

2014-02-27 10:35 281 查看
文章来源:/article/1842754.html
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include<QTreeWidgetItem>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
    Q_OBJECT
public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
private slots:
    void on_pushButton_clicked();
private:
    Ui::Dialog *ui;
private:
    void addRoot(QString name);
    void add_Child(QTreeWidgetItem* parent, QString name);
};
#endif // DIALOG_H
//实现
#include "dialog.h"
#include "ui_dialog.h"
#include<QFont>
#include<QMessageBox>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    //创建三个顶级目录
    addRoot("Root Level One");
    addRoot("Root Level Two");
    addRoot("Root Level Three");
}
Dialog::~Dialog()
{
    delete ui;
}
void Dialog:: addRoot(QString name)
{
    QTreeWidgetItem *itm = new QTreeWidgetItem(ui->treeWidget);//传递父对象
    itm->setText(0,name);
    QFont serifFont("Times", 10, QFont::Bold);
    itm->setFont(0, serifFont);
    itm->setWhatsThis(0, "Root Level Tree");
    ui->treeWidget->addTopLevelItem(itm);//把item添加为顶层
    //添加6个child组件
    add_Child(itm, "One Level");
    add_Child(itm, "Two Level");
    add_Child(itm, "Three Level");
    add_Child(itm, "Four Level");
    add_Child(itm, "Five Level");
    add_Child(itm, "Six Level");
}
void Dialog:: add_Child(QTreeWidgetItem* parent, QString name)
{
    //创建组件
    QTreeWidgetItem *itm = new QTreeWidgetItem();
    itm->setText(0,name);
    //设置字体
    QFont childFont;
    childFont.setWeight(QFont::Black);
    childFont.setStyle(QFont::StyleOblique);
    childFont.setUnderline(true);
    itm->setFont(0, childFont);
    itm->setBackgroundColor(0,Qt::gray);
    itm->setTextColor(0,Qt::red);
    //把上面定义好的组件以child的形式添加到顶级组件中
    parent->addChild(itm);
}
void Dialog::on_pushButton_clicked()
{
ui->treeWidget->currentItem()->setBackgroundColor(0, Qt::cyan);
}
//测试
#include <QtGui/QApplication>
#include "dialog.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();
    return a.exec();
}
//结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: