插入表格,插入图片,界面交互

#include "test03.h"

test03::test03(QWidget *parent, Qt::WFlags flags)
	: QDialog(parent, flags)
{
	ui.setupUi(this);

	//tablewidget常用操作
	//设置表格行数
	ui.tableWidget->setRowCount(18);
    //设置表格列数
    ui.tableWidget->setColumnCount(2);

	//设置水平表头
   QStringList strList;
   strList<<tr("参数名")<< tr("参数值");
   ui.tableWidget->setHorizontalHeaderLabels(strList);

   ui.tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(40,143,218);font:13pt '宋体';color: white;};");
   ui.tableWidget->verticalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(123,125,255);font:13pt '宋体';color: white;};");


   //设置单元格编辑状态
   QTableWidgetItem *pItem = new QTableWidgetItem("MaxNum");
   pItem->setFlags(Qt::ItemIsEnabled); //设置当前单元格编辑状态为浅色不可编辑,具体详见Qt帮助文档中的枚举体,陈列了各种编辑状态
   ui.tableWidget->setItem(1,0,pItem); //设置第1行第0列(行和列都是从0开始的)的内容为pItem  
   ui.tableWidget->setItem(1,1,new QTableWidgetItem(tr("20")));
   ui.tableWidget->setItem(0,0,new QTableWidgetItem(tr("MinNum")));   //设置第0行第0列单元格内容
   //ui.tableWidget->setItem(0,1,new QTableWidgetItem(tr("50")));  //设置第0行第1列单元格内容
  // ui.tableWidget->setItem(2,0,new QTableWidgetItem("80"));

   //添加部件ComboBox到单元格中
   QComboBox *pComboBox = new QComboBox();
   pComboBox->addItem("10");
   pComboBox->addItem("20");
   ui.tableWidget->setCellWidget(0,1,pComboBox); //添加到底0行第1列单元格中
   

   //treeWidget目录
   //使用右击菜单需要添加此项
	ui.treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
	
	connect(ui.treeWidget, SIGNAL(customContextMenuRequested(const QPoint &)),
		this, SLOT(SlotCustomContextMenuRequested(const QPoint&)));
 
    QTreeWidgetItem * item1 = new QTreeWidgetItem(QStringList()<<"节点1");
    ui.treeWidget->addTopLevelItem(item1);
   
    //追加子节点

    QStringList child1 = QStringList()<<"2级节点";
    QTreeWidgetItem * childNode1 = new QTreeWidgetItem(child1);
	
	QStringList child2 = QStringList()<<"3级节点";
    QTreeWidgetItem * childNode2= new QTreeWidgetItem(child1);
	
	childNode1->addChild(childNode2);
    item1->addChild(childNode1);
}

void test03::SlotCustomContextMenuRequested(const QPoint& pos)
{
	del = new QAction("删除", this);
	ad  = new QAction("增加",this);
	QMenu *popMenu = new QMenu(this);//定义右键弹出菜单
	QMenu* M1 = popMenu->addMenu("增加");
	QMenu* M2 = popMenu->addMenu("删除");
	M2->addAction(del);//往菜单内添加QAction 
	M1->addAction(ad);
	
	connect(del, SIGNAL(triggered()), this, SLOT(DeleteItemFunction()));
	connect(ad, SIGNAL(triggered()), this, SLOT(AddItemFunction()));
	popMenu->exec(QCursor::pos());//弹出右键菜单,菜单位置为光标位置
	
}
 
void test03::DeleteItemFunction()
{
	QTreeWidgetItem * currentItem = ui.treeWidget->currentItem();//获取当前节点
	if (currentItem == NULL)
	{
		return;
	}
	else
		delete currentItem;
}

void test03::AddItemFunction()
{
	QTreeWidgetItem * currentItem = ui.treeWidget->currentItem();//获取当前节点
	AddTreeNode(currentItem,"新子节点","新子节点");		
}


QTreeWidgetItem * test03::AddTreeNode(QTreeWidgetItem *parent,QString name,QString desc)
{
    QTreeWidgetItem * item=new QTreeWidgetItem(QStringList()<<name<<desc);
    parent->addChild(item);
    return item;
}

void test03::on_pushButton_clicked()
{
	
	ui.stackedWidget->setCurrentIndex(0);	
}

void test03::on_pushButton_2_clicked()
{
	ui.stackedWidget->setCurrentIndex(1);	
}

void test03::on_pushButton_3_clicked()
{
	ui.stackedWidget->setCurrentIndex(2);
}

void test03::on_pushButton_4_clicked()
{
   
    getContent(0);
}
 
void test03::on_pushButton_5_clicked()
{
    
    getContent(1);
}
 
void test03::on_pushButton_6_clicked()
{
	QString path="C://Users//lt265//Desktop//新建 DOCX 文档.docx";
	 if(path.isEmpty()==false)
	 {
		  QFile file(path);
		  QAxObject *words= new QAxObject(this);/**定义一个指针**/

		  
		   words->setControl("kwps.Application");//指向com文件类型setControl
           words->setProperty("Visible",false);//设置是否提示或者显示对话框setProperty
           QAxObject *workbooks = words->querySubObject("Documents");//获取工作簿(excel文件)集合querySubObject
           workbooks->dynamicCall("Add(QString)", path);//链接到具体的文件dynamicCall
           //path至关重要,获取excel文件的路径
           //打开一个word文件,获取文档
           QAxObject *workbook = words->querySubObject("ActiveDocument");//获取word中已经有数值的区域querySubObject



		  /********修改一个位置的内容*********/
 
           QString sLabel="XXXXX";//此处必须为文档中被标记为书签的内容,下面语句的意思就是确定书签的位置:
           QAxObject *pBookmark = workbook->querySubObject("Bookmarks(QString)",sLabel);//找到活跃区域内的书签querySubObject
           //就是把书签内容直接给你替换了
           QString sText=ui.textEdit_2->toPlainText();//此处为替换内容
           pBookmark->dynamicCall("Select(void)");//选中要选中的区域
           pBookmark->querySubObject("Range")->setProperty("Text",sText);//进行替换操作


		    /*****截图*******/
			
		   QPixmap pix = QPixmap::grabWidget(ui.tableWidget);
		   
		   QString strFile2="C://Users//lt265//Desktop";
		  
		   pix.save(QString("%1/34.png").arg(strFile2));
		   QString strFile=strFile2+"//34.png";
		   QString screenshot="截图";//此处必须为文档中被标记为书签的内容,下面语句的意思就是确定书签的位置:
           QAxObject *pBookmark2 = workbook->querySubObject("Bookmarks(QVariant)",screenshot);//找到活跃区域内的书签querySubObject
		   
		   if(!pBookmark2->isNull())
		   {
			   pBookmark2->dynamicCall("Select(void)");

			   QAxObject *range;
			   range = pBookmark2->querySubObject("Range");
			   QVariant tmp = range->asVariant();
			   QList<QVariant>qList;
			   //strFile 图片路径
			   qList<<QVariant(QString::fromLocal8Bit(QString(strFile).toLocal8Bit()));
			   qList<<QVariant(false);
			   qList<<QVariant(true);
			   qList<<tmp;

			   QAxObject *Inlineshapes = workbook->querySubObject("InlineShapes");
			   
			   // pBookmark->querySubObject("Range")->setProperty("Text",qList);//进行替换操作
			   Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
			   delete Inlineshapes;
			   delete range;
		   }
		   delete  pBookmark2;

		  
		   /*****插入表格*******/
		   int mrow=ui.tableWidget->rowCount();				//行数
           int mcolumn=ui.tableWidget->columnCount();        //列数

		   QString m_table="表格";
           QAxObject *range = workbook->querySubObject("Bookmarks(QString)",m_table)->querySubObject("Range");//找到活跃区域内的书签querySubObject,并在该区域插入表格

			
           QAxObject *tables = workbook->querySubObject("Tables");
           QAxObject *table = tables->querySubObject("Add(QVariant,int,int)",range->asVariant(),mrow+1,mcolumn);// 行和列

           table->setProperty("Style","网格型");
          
		   
		   /*****设置表头*******/
		   QStringList strList2;
           strList2<<tr("参数名")<< tr("参数值");
           for(int i=0;i<mcolumn;i++)
		   {
		       table->querySubObject("Cell(Long,Long)",1,i+1)->querySubObject("Range")
		           	->dynamicCall("SetText(QString)", strList2.at(i));//设置表格内容
			}
	       
			/*****填充表格*******/

	        for(int i=0;i<ui.tableWidget->rowCount();i++)
			 {
				for(int j=0;j<ui.tableWidget->columnCount();j++)
					{
						if(i==0&&j==1)
						{
							QWidget *widgetSex=ui.tableWidget->cellWidget(i,j);
							QComboBox *sex=(QComboBox*)widgetSex;
							//sex->currentText();

							table->querySubObject("Cell(Long,Long)",i+2,j+1)->querySubObject("Range")
								->dynamicCall("SetText(QString)",  sex->currentText());

						}
						else
						{
						QTableWidgetItem* item = ui.tableWidget->item(i,j);
						if(item != NULL)
						{
							
							table->querySubObject("Cell(Long,Long)",i+2,j+1)->querySubObject("Range")
							->dynamicCall("SetText(QString)", ui.tableWidget->item(i,j)->text());

						
						}
						}
					 }
			  }

		    /*****保存*******/

		   QString pathsave = QFileDialog::getSaveFileName(this,"Save","C://Users//lt265//Desktop","kwps(*doc)");
		   //QString pathsave = QFileDialog::getSaveFileName(this,"Save","../","kwps(*doc)");
           if(pathsave.isEmpty()==true)
           {
               return;
           }
           workbook->dynamicCall("SaveAs(const QString&))",QDir::toNativeSeparators(pathsave));
           workbook->dynamicCall("Close(bool)", true);
           words->dynamicCall("Quit()");
           delete workbook;
           delete words;
           file.close();
           QMessageBox::warning(this,"完成","文件已经保存",QMessageBox::Yes);
	}
}

void test03::getContent(int type)
{
    QString style;
    QString str = ui.textEdit->toPlainText();
    QString tmp;
    for (int i=0;i<str.length();i++)
    {
        if ( type?(str.at(i) >='0' && str.at(i)<='9'):(str.at(i) <'0' || str.at(i)>'9') )
        {
            tmp.append(str.at(i)); 
        }
    }
    ui.textBrowser->setText(tmp);
}


test03::~test03()
{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据首页界面HTML设计是为了呈现和展示大数据相关内容的网页。在设计,需要考虑用户友好性和信息的呈现方式。 首页的HTML界面应该包含以下几个方面的设计: 1. 页面结构:使用HTML标记语言定义整个页面的基本结构,包括头部、主体和底部等部分。使用HTML5的语义化标签有助于提高搜索引擎的可读性和页面的可访问性。 2. 导航栏:使用HTML的<nav>标签创建导航栏,方便用户在不同页面之间切换。导航栏可以包括大数据的相关分类和主题,如数据分析、数据可视化等。 3. 页面主体:主要以内容区域为主,呈现大数据相关的信息。可以使用<div>标签划分不同的内容块,如热门数据分析案例、最新的数据可视化技术等。 4. 图片和多媒体:通过使用HTML的<img>标签插入图片,可以使页面更加生动和吸引人。同时,可以使用HTML5提供的音频和视频标签插入多媒体内容,以展示大数据的应用场景和效果。 5. 数据展示和互动性:可以通过使用HTML表格、图表等元素展示大数据的结果和分析。同时可以添加交互元素,如按钮和链接,使用户能够进行数据的筛选、排序和导航等操作。 6. 响应式设计:考虑到各种设备上的浏览,可以使用CSS媒体查询和流式布局等技术,确保页面在不同设备上的显示效果。 总之,大数据首页界面HTML设计应该注重内容的展示和用户体验,结合页面结构、导航栏、内容区域、图片和多媒体、数据展示和互动性,以及响应式设计等多个方面进行设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值