#include "ishowcourses.h" #include "ui_ishowcourses.h" #include #include #include #include #include #include #include #include "iwebRequest.h" QJsonArray objarray; QJsonArray pptarray; int showPptNum = 0; QTreeWidgetItem * itemChoose; IshowCourses::IshowCourses(QWidget *parent) : QWidget(parent), ui(new Ui::IshowCourses) { ui->setupUi(this); ui->treeWidget->setColumnCount(1); //设置列数 ui->treeWidget->header()->setStretchLastSection(false); ui->treeWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); connect(ui->treeWidget,&QTreeWidget::itemClicked,this,&IshowCourses::slotOpenCourses); connect(IWebRequest::Instance(), SIGNAL(response(int,int,QString,QString)), this, SLOT(updateCoursesPpt(int,int,QString,QString))); QFile source(":Images/style/styleMsg.html"); source.open(QIODevice::ReadOnly); ui->webView->setHtml(QString::fromUtf8(source.readAll().constData())); source.close(); } void IshowCourses::slotOpenCourses(QTreeWidgetItem* item1, int columns) { static int lastRowNum = -1; if(ui->treeWidget->currentItem()->parent() == NULL || ui->treeWidget->currentItem()->parent()->parent() == NULL) { qDebug("CMQ choose is root columns = %d",ui->treeWidget->currentIndex().row()); } else { int rowNum = ui->treeWidget->currentIndex().row(); if(ui->treeWidget->currentItem()->parent()->parent() != NULL /*&& lastRowNum != rowNum*/) { int root_num = 0; lastRowNum = rowNum; root_num = ui->treeWidget->indexOfTopLevelItem(item1->parent()->parent()); int parent_row=item1->parent()->parent()->indexOfChild(item1->parent()); qDebug("CMQ 111 root_num = %d parent_row = %d",root_num,parent_row); int CoursesId = objarray.at(root_num).toObject().find("submenu").value().toArray().at(parent_row).toObject().\ find("subcourse").value().toArray().at(rowNum).toObject().find("courseInfo").value().toObject().find("id").value().toDouble(); if(itemChoose != item1) { itemChoose = item1; QStringList params; params.append(QString("%1").arg(CoursesId)); IWebRequest::Instance()->sendRequestToServer(REQ_USER_COURSE_PPT_GET, params); } // qDebug()<<"CoursesId = "<webView->load(QUrl(pptarray.at(0).toObject().find("pic").value().toObject().find("url").value().toString())); showPptNum = 0; ui->label_page->setText(QString("%1/%2").arg(showPptNum+1).arg(pptarray.size())); } else if(cmd == REQ_USER_COURSE_LIST_GET) { QTreeWidgetItem * itemFirst; QTreeWidgetItem * itemSecond; QTreeWidgetItem * itemThirdly; QString title; QJsonParseError jsonErr; QJsonDocument myjsonDoc1 = QJsonDocument::fromJson(result.toLatin1(),&jsonErr); objarray = myjsonDoc1.object().find("result").value().toObject().find("lists").value().toArray(); ui->treeWidget->clear(); itemChoose = NULL; for(int i = 0;i < objarray.count();i++) { QJsonObject jobj = objarray.at(i).toObject(); title = jobj.find("en_title").value().toString(); itemFirst = AddTreeRoot(title); QJsonArray subarray = jobj.find("submenu").value().toArray(); ui->treeWidget->setItemExpanded(itemFirst,true);//展开 for(int j = 0;j < subarray.count();j++) { QJsonArray subcourse = subarray.at(j).toObject().find("subcourse").value().toArray(); title = subarray.at(j).toObject().find("en_title").value().toString() + QString(" (%1)").arg(subcourse.size()); itemSecond = AddTreeNode(itemFirst,title); int num = subarray.at(j).toObject().find("pid").value().toDouble(); for(int k = 0;k < subcourse.count();k++) { if(num == 2) { title = subcourse.at(k).toObject().find("courseInfo").value().toObject().find("title").value().toString() + QString(" ") + \ subcourse.at(k).toObject().find("courseInfo").value().toObject().find("content").value().toString().trimmed(); } else { title = subcourse.at(k).toObject().find("courseInfo").value().toObject().find("content").value().toString().trimmed(); } title.remove("\n"); AddTreeNode(itemSecond,title); } } } } } QTreeWidgetItem * IshowCourses::AddTreeRoot(QString name) { QTreeWidgetItem * item=new QTreeWidgetItem(QStringList()<setFont(0,mfont); ui->treeWidget->addTopLevelItem(item); return item; } QTreeWidgetItem * IshowCourses::AddTreeNode(QTreeWidgetItem *parent,QString name) { QTreeWidgetItem * item=new QTreeWidgetItem(QStringList()<addChild(item); // item->setSizeHint(1,QSize(40,25)); return item; } IshowCourses::~IshowCourses() { delete ui; } void IshowCourses::onAddNoteFront() { if(ui->treeWidget->currentItem()->parent() == 0) { QTreeWidgetItem *pNode = new QTreeWidgetItem; //添加第一个父节点 pNode->setText(0,tr("FrontFrontFrontFront")); // m_RootList.append(pNode); ui->treeWidget->insertTopLevelItem(ui->treeWidget->currentIndex().row(), pNode); } else { QTreeWidgetItem *pChildNode = new QTreeWidgetItem(QStringList(QString("ChildFront"))); //添加子节点 ui->treeWidget->currentItem()->parent()->insertChild(ui->treeWidget->currentItem()->parent()->indexOfChild(ui->treeWidget->currentItem()), pChildNode); } } //当前节点后面添加节点: void IshowCourses::onAddNoteNext() { if(ui->treeWidget->currentItem()->parent() == 0) { QTreeWidgetItem *pNode = new QTreeWidgetItem; //添加第一个父节点 pNode->setText(0,tr("NextNextNextNextNext")); // m_RootList.append(pNode); ui->treeWidget->insertTopLevelItem(ui->treeWidget->currentIndex().row()+1, pNode); } else { QTreeWidgetItem *pChildNode = new QTreeWidgetItem(QStringList(QString("ChildNext"))); //添加子节点 ui->treeWidget->currentItem()->parent()->insertChild(ui->treeWidget->currentItem()->parent()->indexOfChild(ui->treeWidget->currentItem())+1, pChildNode); } } //当前节点添加子节点: void IshowCourses::onAddChild() { QTreeWidgetItem *pChildNode = new QTreeWidgetItem(ui->treeWidget->currentItem(),QStringList(QString("aaaaaafa1"))); //添加子节点 ui->treeWidget->currentItem()->addChild(pChildNode); } //删除当前节点以及子节点: void IshowCourses::onDelNode() { if(0 == ui->treeWidget->currentItem()->parent()) { ui->treeWidget->currentItem()->takeChildren(); ui->treeWidget->takeTopLevelItem(ui->treeWidget->indexOfTopLevelItem(ui->treeWidget->currentItem())); } else { ui->treeWidget->currentItem()->parent()->removeChild(ui->treeWidget->currentItem()); } } void IshowCourses::showMainMaximized() { ui->webView->load(QUrl(pptarray.at(showPptNum).toObject().find("pic").value().toObject().find("url").value().toString())); // ui->webView->resize(QSize(960,720)); if(ui->webView->minimumWidth() == 960) ui->webView->setMinimumSize(QSize(638,474)); else ui->webView->setMinimumSize(QSize(960,720)); qDebug()<<"showMainMaximized = "<webView->width(); } void IshowCourses::on_pushButton_next_clicked() { if(pptarray.size() > 0) { showPptNum++; if(showPptNum > pptarray.size()-1) showPptNum = pptarray.size()-1; ui->webView->load(QUrl(pptarray.at(showPptNum).toObject().find("pic").value().toObject().find("url").value().toString())); ui->label_page->setText(QString("%1/%2").arg(showPptNum+1).arg(pptarray.size())); } } void IshowCourses::on_pushButton_last_clicked() { if(pptarray.size() > 0) { showPptNum--; if(showPptNum < 0) showPptNum = 0; ui->webView->load(QUrl(pptarray.at(showPptNum).toObject().find("pic").value().toObject().find("url").value().toString())); ui->label_page->setText(QString("%1/%2").arg(showPptNum+1).arg(pptarray.size())); } } void IshowCourses::go_now_courses() { if(itemChoose) ui->treeWidget->scrollToItem(itemChoose); if(objarray.size() < 1) { //获取课程列表 QStringList paramsCourse; paramsCourse.append(QString("1")); paramsCourse.append(QString("1")); IWebRequest::Instance()->sendRequestToServer(REQ_USER_COURSE_LIST_GET, paramsCourse); } }