创建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();
}
//结果
相关文章推荐
- 演练:在组件设计器中创建 Windows 服务应用程序
- Android四大组件之Service的创建过程
- iphone之利用Masonry框架为组件创建约束
- 简化 Ajax 和 Java 开发,第 4 部分: 使用 JSP 标记文件创建 JSF 样式的组件
- C# winform创建AXHOST组件失败解决方案
- Winform下创建组件失败,未能加载文件或程序集,提示filenotfound
- XPCOM指南-4_创建组件的代码
- 如何创建一个依赖Android AAR文件的React Native组件
- 使用Symfony2的组件创建自己的PHP框架
- BCB 动态创建组件的事件响应
- Vue父子组件创建
- 手把手教你使用VB来创建ASP组件
- 关于创建一个组件的步骤
- ATL 8.0(VS2005) 我要创建一个继承自多个接口的组件类
- OpenStack中nova组件创建虚拟机的源码流程
- Android核心组件之ContentProvider(二)--创建自己的ContentProvider
- 用VS.NET创建.NET可复用数据库组件
- 使用vs2008出现未能创建.net frameworks propertygrid组件的解决方法
- angular 4.*如何创建动态组件
- 使用Kendo UI Web创建自定义组件(基础篇)