当前位置: 首页 > news >正文

网页设计与网站建设期末考试试卷郑州网络营销公司哪家好

网页设计与网站建设期末考试试卷,郑州网络营销公司哪家好,崇信县门户网站,互联网推广策略基于QTreeWidget实现多级组织结构以及带Checkbox的选择树 采用基于QWidgetMingw实现的多级组织结构树 通过QTreeWidget控件实现的多级组织结构树。 Qt相关系列文章#xff1a; 一、Qt实现的聊天画面消息气泡 二、基于QTreeWidget实现多级组织结构 三、基于QTreeWidget实现带Ch…基于QTreeWidget实现多级组织结构以及带Checkbox的选择树 采用基于QWidgetMingw实现的多级组织结构树 通过QTreeWidget控件实现的多级组织结构树。 Qt相关系列文章 一、Qt实现的聊天画面消息气泡 二、基于QTreeWidget实现多级组织结构 三、基于QTreeWidget实现带Checkbox的多级组织结构选择树 基于QTreeWidget实现多级组织结构代码已上传到【https://gitee.com/duyanjun/bubbleChat.git】 目录 基于QTreeWidget实现多级组织结构以及带Checkbox的选择树1、效果图2、运行2.1、从git导入2.2、修改头像图片的路径2.3、运行2.4、实现 1、效果图 2、运行 2.1、从git导入 文件 - 新建文件或项目 - Import Project - Git Clone 【https://gitee.com/duyanjun/QT_treeDemo.git】 2.2、修改头像图片的路径 运行本Demo需要修改mainwindow.cpp第130行代码中的images目录的绝对路径 2.3、运行 2.4、实现 1、主画面部局 在画面添加QTreeWidget控件 2、人员节点部局 整体部局采用横向部局依次是头像和姓名心情姓名心情采用纵向部局 3、main.cpp #include mainwindow.h #include QApplicationint main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.show();return a.exec(); }4、MainWindow类 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow #include QTreeWidgetItem #include QPixmapnamespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent 0);~MainWindow(); private slots:void onItemExpanded(QTreeWidgetItem * item);void onItemCollapsed(QTreeWidgetItem * item);void onItemClicked(QTreeWidgetItem * item, int column);private:void initTree();QTreeWidgetItem* addChildNode(QTreeWidgetItem *parent, int index, QString namePre);QTreeWidgetItem* addChildEmpNode(QTreeWidgetItem *parent, int index); private:Ui::MainWindow *ui; };#endif // MAINWINDOW_H mainwindow.cpp #include mainwindow.h #include ui_mainwindow.h #include departnodeitem.h #include EmployeeNodeItem.h#include QList #include QPainter #include QDebugMainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this);initTree(); }MainWindow::~MainWindow() {delete ui; }void MainWindow::onItemExpanded(QTreeWidgetItem *item) {bool bIsChild item-data(0, Qt::UserRole).toBool();if (!bIsChild) {DepartNodeItem *departNode dynamic_castDepartNodeItem*(ui-tree-itemWidget(item, 0));if (departNode) {departNode-setExpanded(true);}} }void MainWindow::onItemCollapsed(QTreeWidgetItem *item) {bool bIsChild item-data(0, Qt::UserRole).toBool();if (!bIsChild) {DepartNodeItem *departNode dynamic_castDepartNodeItem*(ui-tree-itemWidget(item, 0));if (departNode) {departNode-setExpanded(false);}} }void MainWindow::onItemClicked(QTreeWidgetItem *item, int column) {bool bIsChild item-data(0, Qt::UserRole).toBool();if (!bIsChild){item-setExpanded(!item-isExpanded());} }void MainWindow::initTree() {ui-tree-setHeaderHidden(true);//展开和收缩时信号以达到变更我三角图片connect(ui-tree, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, SLOT(onItemClicked(QTreeWidgetItem *, int)));connect(ui-tree, SIGNAL(itemExpanded(QTreeWidgetItem *)), this, SLOT(onItemExpanded(QTreeWidgetItem *)));connect(ui-tree, SIGNAL(itemCollapsed(QTreeWidgetItem *)), this, SLOT(onItemCollapsed(QTreeWidgetItem *)));for(int i 0; i 10; i){// 一级部门节点QTreeWidgetItem *pRootDeptItem new QTreeWidgetItem();pRootDeptItem-setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);//设置Data用于区分Item是分组节点还是子节点0代表分组节点1代表子节点pRootDeptItem-setData(0, Qt::UserRole, 0);DepartNodeItem *pItemName new DepartNodeItem(ui-tree);pItemName-setLevel(0);int nMyFriendNum 6;QString qsGroupName QString(一级部门%3 [%1/%2]).arg(0).arg(nMyFriendNum).arg(i);pItemName-setText(qsGroupName);//插入分组节点ui-tree-addTopLevelItem(pRootDeptItem);ui-tree-setItemWidget(pRootDeptItem, 0, pItemName);for(int j 0; j 5; j){addChildEmpNode(pRootDeptItem, j);}for(int j 0; j 5; j){QString name QString(二级部门%1).arg(j);QTreeWidgetItem *childItem addChildNode(pRootDeptItem, i * 10 j,name);for(int g 0; g 5; g){addChildEmpNode(childItem, g);}}} }QTreeWidgetItem* MainWindow::addChildNode(QTreeWidgetItem *parent, int index, QString namePre) {QTreeWidgetItem *pDeptItem new QTreeWidgetItem();pDeptItem-setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);//设置Data用于区分Item是分组节点还是子节点0代表分组节点1代表子节点pDeptItem-setData(0, Qt::UserRole, 0);DepartNodeItem *pItemName new DepartNodeItem(ui-tree);int level 0;DepartNodeItem *departNode dynamic_castDepartNodeItem*(ui-tree-itemWidget(parent, 0));if (departNode) {level departNode-getLevel();level ;}pItemName-setLevel(level);int nMyFriendNum 6;QString qsGroupName QString(%4%3 [%1/%2]).arg(0).arg(nMyFriendNum).arg(index).arg(namePre);pItemName-setText(qsGroupName);//擦入分组节点parent-addChild(pDeptItem);ui-tree-setItemWidget(pDeptItem, 0, pItemName);return pDeptItem; }QTreeWidgetItem *MainWindow::addChildEmpNode(QTreeWidgetItem *parent, int index) {QTreeWidgetItem *pDeptItem new QTreeWidgetItem();//设置Data用于区分Item是分组节点还是子节点0代表分组节点1代表子节点pDeptItem-setData(0, Qt::UserRole, 1);int level 0;DepartNodeItem *departNode dynamic_castDepartNodeItem*(ui-tree-itemWidget(parent, 0));if (departNode) {level departNode-getLevel();level ;}EmployeeNodeItem *pItemName new EmployeeNodeItem(ui-tree);pItemName-setLevel(level);// 加载本地文件需要修改成本地的路径pItemName-setHeadPath(QString(D:/work/Qt/workspace/QT_treeDemo/images/pic/%1.jpg).arg(index));QString qfullName QString(人员%1).arg(index);pItemName-setFullName(qfullName);pItemName-setSign(QString(欢迎访问杜燕军工作号-test!!!));//擦入分组节点parent-addChild(pDeptItem);ui-tree-setItemWidget(pDeptItem, 0, pItemName);return pDeptItem; }5、DepartNodeItem类 departnodeitem.h #ifndef DEPARTNODEITEM_H #define DEPARTNODEITEM_H#include QLabel #include QPaintEvent #include QPropertyAnimation#define INDENTATION 20class DepartNodeItem : public QLabel {Q_OBJECTQ_PROPERTY(int rotation READ rotation WRITE setRotation) public:DepartNodeItem(QWidget *parent 0);~DepartNodeItem();void setText(const QString title);void setExpanded(bool expand);int getIndentation();void setLevel(int level);int getLevel();private:int rotation();void setRotation(int rotation);private:void paintEvent(QPaintEvent *event);private:QPropertyAnimation *m_animation;// 部门名称QString m_name;// 部门IDQString m_id;// 旋转角度int m_rotation;// 当前节点缩进距离int m_indentation;// 当前节点的深度级数int m_level; };#endif // DEPARTNODEITEM_Hdepartnodeitem.cpp #include departnodeitem.h#include QPainter #include QDebugDepartNodeItem::DepartNodeItem(QWidget *parent): QLabel(parent),m_rotation(0),m_level(0),m_indentation(0) {setFixedHeight(32);setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);m_animation new QPropertyAnimation(this, rotation);m_animation-setDuration(50);m_animation-setEasingCurve(QEasingCurve::InQuad); }DepartNodeItem::~DepartNodeItem() {m_animation NULL;delete m_animation; }void DepartNodeItem::setText(const QString title) {m_name title;update(); }void DepartNodeItem::setExpanded(bool expand) {if (expand) {m_animation-setEndValue(90);} else {m_animation-setEndValue(0);}m_animation-start(); }int DepartNodeItem::getIndentation() {return this-m_indentation; }void DepartNodeItem::setLevel(int level) {this-m_level level;this-m_indentation this-m_level * INDENTATION; }int DepartNodeItem::getLevel() {return this-m_level; }int DepartNodeItem::rotation() {return m_rotation; }void DepartNodeItem::setRotation(int rotation) {m_rotation rotation;update(); }void DepartNodeItem::paintEvent(QPaintEvent *event) {QPainter painter(this);{painter.setRenderHint(QPainter::TextAntialiasing, true);QFont font;font.setPointSize(10);painter.setFont(font);int txtX m_indentation 24;painter.drawText(txtX, 0, this-width() - txtX, this-height(), Qt::AlignLeft | Qt::AlignVCenter, m_name);}{painter.setRenderHint(QPainter::SmoothPixmapTransform, true);painter.save();QPixmap pixmap(:/tree/Resources/arrow.png);QPixmap tmpPixmap(pixmap.size());tmpPixmap.fill(Qt::transparent);QPainter p(tmpPixmap);p.setRenderHint(QPainter::SmoothPixmapTransform, true);// 旋转m_rotation角度p.translate(pixmap.width() /2, pixmap.height() /2);p.rotate(m_rotation);p.drawPixmap(0 - pixmap.width() /2, 0 - pixmap.height() / 2,pixmap);painter.drawPixmap(m_indentation6, (this-height() - pixmap.height()) / 2, tmpPixmap);painter.restore();}QLabel::paintEvent(event); }6、EmployeeNodeItem类 EmployeeNodeItem.h #ifndef EMPLOYEENODEITEM_H #define EMPLOYEENODEITEM_H#include QWidget #include QPaintEvent #include QPixmap #include QSize#define INDENTATION 20 #define HEAD_LABEL_WIDTH 40namespace Ui { class EmployeeNodeItem; }class EmployeeNodeItem : public QWidget {Q_OBJECTpublic:EmployeeNodeItem(QWidget *parent 0);~EmployeeNodeItem();public:void setFullName(const QString fullName);void setSign(const QString sign);void setHeadPixmap(const QPixmap headPath);void setHeadPath(const QString headPath);QSize getHeadLabelSize() const;int getIndentation();int getLevel();void setLevel(int level);private:void initControl();QPixmap getRoundImage(const QPixmap src, QPixmap mask, QSize masksize);private:void paintEvent(QPaintEvent *event);private:Ui::EmployeeNodeItem *ui;// 当前节点缩进距离int m_indentation;// 当前节点的深度级数int m_level;// 头像Label的宽度int m_headLabelWidth; };#endif // EMPLOYEENODEITEM_HEmployeeNodeItem.cpp #include EmployeeNodeItem.h #include ui_EmployeeNodeItem.h#include QDebug #include QPainterEmployeeNodeItem::EmployeeNodeItem(QWidget *parent) :QWidget(parent),ui(new Ui::EmployeeNodeItem),m_headLabelWidth(0),m_level(0),m_indentation(0) {ui-setupUi(this);initControl(); }EmployeeNodeItem::~EmployeeNodeItem() {delete ui; }void EmployeeNodeItem::setFullName(const QString fullName) {ui-lbFullName-setText(fullName); }void EmployeeNodeItem::setSign(const QString sign) {ui-lbSign-setText(sign); }void EmployeeNodeItem::setHeadPixmap(const QPixmap headPath) {ui-lbHeadPic-setPixmap(headPath); }void EmployeeNodeItem::setHeadPath(const QString headPath) {/*ui-lbHeadPic-setScaledContents(true);QString style ui-lbHeadPic-styleSheet();style.append(image:url().append(headPath).append(););qDebug() style;ui-lbHeadPic-setStyleSheet(style);*/// 方式3.加载QPixmapQPixmap pixmap1;pixmap1.load(headPath);QPixmap pixmap2;pixmap2.load(:/tree/Resources//head_mask.png);//qDebug() m_level: m_level m_indentation: m_indentation m_headLabelWidth: m_headLabelWidth HEAD_LABEL_WIDTH;QPixmap roundPic this-getRoundImage(pixmap1, pixmap2, QSize(m_headLabelWidth,HEAD_LABEL_WIDTH));this-setHeadPixmap(roundPic); }QSize EmployeeNodeItem::getHeadLabelSize() const {return ui-lbHeadPic-size(); }int EmployeeNodeItem::getIndentation() {return this-m_indentation;}int EmployeeNodeItem::getLevel() {return this-m_level; }void EmployeeNodeItem::setLevel(int level) {this-m_level level;this-m_indentation this-m_level * INDENTATION;this-m_headLabelWidth this-m_indentation HEAD_LABEL_WIDTH;ui-lbHeadPic-setMinimumWidth(m_indentation); }void EmployeeNodeItem::initControl() {}QPixmap EmployeeNodeItem::getRoundImage(const QPixmap src, QPixmap mask, QSize masksize) {if (masksize QSize(0, 0)){masksize mask.size();}else{mask mask.scaled(masksize, Qt::KeepAspectRatio, Qt::SmoothTransformation);}QImage resultImage(masksize, QImage::Format_ARGB32_Premultiplied);QPainter painter(resultImage);painter.setCompositionMode(QPainter::CompositionMode_Source);painter.fillRect(resultImage.rect(), Qt::transparent);painter.setCompositionMode(QPainter::CompositionMode_SourceOver);painter.drawPixmap(m_indentation, 0, mask);painter.setCompositionMode(QPainter::CompositionMode_SourceIn);painter.drawPixmap(m_indentation, 0, src.scaled(masksize, Qt::KeepAspectRatio, Qt::SmoothTransformation));painter.end();return QPixmap::fromImage(resultImage); }void EmployeeNodeItem::paintEvent(QPaintEvent *event) {QWidget::paintEvent(event); }
http://www.pierceye.com/news/794497/

相关文章:

  • 创建网站有免费的吗大庆网络推广
  • 南昌p2p网站建设公司福州seo关键词排名
  • 导航网站链接怎么做建设网站的费用调研
  • 北京营销型网站定制网站开发 建设叫什么
  • 用ps做企业网站分辨率是多少钱百度竞价是什么
  • 九江市建设局官方网站网站支付开发
  • 福建建设银行官方网站开发一个大型网站需要多少钱
  • 电子商务建立网站前期准备网站做的不好使
  • 网站建设绵阳电影发布网站模板
  • 河北商城网站搭建多少钱金融 网站 源码
  • 知乎 做网站的公司 中企动力中国十大招商平台
  • 做中英文版的网站需要注意什么怎么解决
  • 电子商务网站开发附件一个外国人做的汉子 网站
  • 找南昌网站开发公司电话寓意好的公司名字
  • 网站商城设计方案做网站的图片传进去很模糊
  • 百度站长平台电脑版cpm广告联盟平台
  • 哪些网站需要做分享按钮米卓网站建设
  • 做的网站怎样评估价值微商城网站建设平台
  • 后台网站更新 网站没显示广告投放代理商
  • 北京住房保障建设投资中心网站wordpress文章页面修改
  • 游戏网站建设项目规划书案例集约化网站群建设情况
  • 网站策划书编写阿里云部署多个网站
  • 品牌高端网站制作公司佛山新网站建设如何
  • 网站开发中怎么设置快捷键网页设计知名网站
  • 公司网上注册在哪个网站分析网络营销方式
  • 网站用什么颜色外贸企业建站公司
  • 网站下载音乐网站开发公司知乎
  • 什么样式表一般用于大型网站什么是seo搜索
  • 做网站用vue还是用jquery济宁网站建设 中企动力临沂
  • 网站专题教程最吸引人的营销广告词