日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt 操作words实例 --- 幼儿快算题生成器

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 操作words实例 --- 幼儿快算题生成器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt 操作words實例 — 幼兒快算題生成器

幼兒教育一直受到重視,一年級開始,一般學校都會要求口算達標,為了更好的促進孩子學習,是否可以制作這樣一款word 口算練習題生成器呢?不妨用Qt來試試看吧!

先看下界面:

代碼實現:
1、。pro 文件中添加:
CONFIG += qaxcontainer

2、將word操作的函數單獨寫類
請看:qword.h文件

#ifndef QWORD_H #define QWORD_H#define _WIN32_DCOM#include <QMainWindow> #include"qmainwindow.h" #include <QString> #include <QVariant> #include <ActiveQt/QAxObject> #include <ActiveQt/QAxWidget> #include "objbase.h" //#include "GlobalAppData.h"class QWord : public QObject {Q_OBJECTpublic:QWord(QObject *parent = 0);~QWord();public:QAxObject* getDocuments(){return m_documents;}QAxObject* getDocument(){return m_document;}QAxObject* getWordApp(){return m_word;} public:/**************************************************************************//* 文件 操作 *//**************************************************************************/void save(); //保存操作內容 void close(); //關閉 退出 析構時候也會自動調用一次void saveAs(); //新建word另存為bool createWord(QString reportname ); //創建一個新的word文檔void openWord(); //打開一個現有的word文檔bool createNewWord(const QString& filePath ); //創建一個新的word文檔void setTableAutoFitBehavior(int flag);//表格自動拉伸列: 0 固定 1根據內容調整 2 根據窗口調整void setPageOrientation(int flag); //設置頁面0為縱向wdOrientPortrait 1為橫向wdOrientLandscape void setWordPageView(int flag); //設置頁面視圖,是web視圖wdWebView 6還是頁面視圖wdPrintView 3 或者閱讀視圖wdReadingView 7void setFontSize(int fontsize); //設置字體大小void setFontName(QString& fontName); //設置字體 比如 “宋體”void setFontBold(bool flag); //字體加粗void setParagraphAlignment(int flag); //設置選中位置文字居左 0 ,居中 1 ,居右 2void setRowAlignment(int tableIndex,int row,int flag);//同時設置列寬和列高可以固定圖片的大小void setColumnWidth(int column, int width); //設置列寬void setColumnHeight(int column, int height); //設置列高void setRowHeight(int nTable,int Row, int height);void setCellString(int row, int column, const QString& text);void setCellFontBold(int row, int column, bool isBold); //設置內容粗體 isBold控制是否粗體void setCellFontSize(int row, int column, int size); //設置文字大小void setOptionCheckSpell(bool flags); //設置審閱的拼寫檢查 true開啟檢查 false 取消檢查 QString GetText(); //獲取內容void getUsedRange(int *topLeftRow, int *topLeftColumn, int *bottomRightRow, int *bottomRightColumn);void setSelectionRange(int start,int end); //"SetRange(1, 9)"第1個字符后開始,到第9個字符結束范圍QVariant getCellValue(int row, int column); //獲取單元格內容 int getTableCount(); //獲取word中表格總數 QString getStrErrorInfo(){return m_strError;} //獲取代碼中出現的錯誤信息可以用QMessageBox::information打印 在cpp不用QMessageBox 是怕你們在線程中調導出報表 void deleteSelectColumn(int column); //刪除指定的列void moveForEnd(); //移動選定對象到文檔末尾void insertCellPic(int row,int column,const QString& picPath); //單元格插入圖片void intsertTable(int row,int column); //插入一個幾行幾列表格void insertMoveDown(); //插入回車void insertText(const QString& text); //插入文字void insertTable(int tableIndex,int row,int column);void MergeCells(int tableIndex, int nStartRow,int nStartCol,int nEndRow,int nEndCol);//合并單元格 bool open(const QString& strFilePath,bool bVisable);bool openword(bool bVisable);bool isOpen();void setColumnWidth(int nTable,int column,int width);// void setRowHeight(int nTable,int row,int height);void setCellString(int nTable,int row,int column,const QString& text);void insertCellPic(int nTable,int row,int column,const QString& picPath);void setCellFontBold(int nTable,int row,int column,bool isBold);void setCellFontSize(int nTable,int row,int column,int size);//void addTableRow(int nTable ,int nRow,int rowCount);void addTableRow(int tableIndex ,int nRow,int rowCount);void setColumnHeight(int nTable,int column, int height);void intsertTable(int tableIndex, int row,int column);public:void setVisible(bool isVisible);private:QAxObject* m_word;QAxObject* m_documents; QAxObject* m_document; QString m_fileName;QString m_saveName;QString m_strError;QString m_strFilePath;bool m_bOpened;};#endif // QWORD_H

關于這部分程序的撰寫,這里先不做過多的解釋,在《Qt5 開發與實例 第四版中有介紹》,網上也有一些介紹。
這里有一篇博客寫得不錯,
http://www.360doc.com/content/14/0227/16/7918060_356177077.shtml

接著我們來看關鍵代碼部分

#include "mainwindow.h" #include "ui_mainwindow.h"#include "Word/qword.h" #include <QDateTime> #include<QDir> #include<qrandom.h>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);minValue = 1; //最小值maxValue = 10; //最大值maxResult = 100; //結果上限pages = 10; //生成的份數_addEn = true;_minusEn = true;_mulitEn = true;_divideEn = true;}MainWindow::~MainWindow() {delete ui; }//生成快題 void MainWindow::on_pushButton_produce_clicked() {QString current_Date_Time = QDateTime::currentDateTime().toString("yyyyMMddhhmmss");QString fileName = tr("幼兒快速口算訓練習題")+"_" + "_" + current_Date_Time;fileName.replace("-", "");fileName.replace(":", "");fileName.replace(" ", "");QString filePath = "";QDate Cur_Date= QDate::currentDate();QString strCurDate = Cur_Date.toString("yyyy-MM-dd");filePath = "E:/demo/QWordDemo/ReportWord/"+strCurDate+"/";QDir dirReportPath(filePath);if (!dirReportPath.exists()){if (dirReportPath.mkpath(filePath)){filePath += fileName + tr(".doc");}}else{filePath += fileName + tr(".doc");}QWord word;if( !word.createNewWord(filePath) ){QString error = tr("Failed to export exercise,") + word.getStrErrorInfo();return;}word.setPageOrientation(0); //頁面方向word.setWordPageView(3); //頁面視圖for(int p = 1;p<= pages;p++){word.setParagraphAlignment(0); //下面文字位置word.setFontSize(30); //字體大小word.setFontBold(true); //字體加粗word.insertText(tr("幼兒快速口算訓練習題( ")+QString::number(p)+ " )");word.setFontBold(false);word.insertMoveDown();word.setFontSize(10);word.setParagraphAlignment(2);// QString current_Time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");word.insertText(tr("日期________________ 時間________________ 分數________________"));word.insertMoveDown();word.insertMoveDown();QString str = "";word.intsertTable(36,5);for(int row = 1;row<=36;row++){for(int colum = 1;colum<=5;colum++){str.clear();QTime time;time= QTime::currentTime();qsrand(time.msec()+time.second()*1000);qrand();qrand();nums0=qrand()%(maxValue - minValue) + minValue;nums1=qrand()%(maxValue - minValue) + minValue;while(DoOperation())str.clear();str = QString::number(nums0) + operator_str + QString::number(nums1) + " =";word.setCellString(p,row,colum,str);}word.setRowAlignment(p,row,3);}word.setTableAutoFitBehavior(0);word.moveForEnd();}word.setVisible(true);word.saveAs(); }bool MainWindow:: DoOperation() {bool loopflag = true;QTime time;time= QTime::currentTime();qsrand(time.msec()+time.second()*1000);qrand();int var = qrand()%4 + 1;switch (var) {case 1:loopflag = (_addEn==true)?false:true;if(!loopflag){operator_str = " + ";}break;case 2:loopflag = (_addEn==true)?false:true;if(!loopflag){operator_str = " - ";}break;case 3:loopflag = (_addEn==true)?false:true;if(!loopflag){operator_str = " × ";}break;case 4:loopflag = (_addEn==true)?false:true;if(!loopflag){operator_str = " ÷ ";}break;default:loopflag = true;break;}return loopflag; }void MainWindow::on_checkBox_add_clicked(bool checked) {if(checked){_addEn = true;}else{_addEn = false;} }void MainWindow::on_checkBox_multi_clicked(bool checked) {if(checked){_mulitEn = true;}else{_mulitEn = false;} }void MainWindow::on_checkBox_minus_clicked(bool checked) {if(checked){_minusEn = true;}else{_minusEn = false;} }void MainWindow::on_checkBox_divide_clicked(bool checked) {if(checked){_divideEn = true;}else{_divideEn = false;} }void MainWindow::on_spinBox_minValue_valueChanged(int arg1) {minValue = arg1; }void MainWindow::on_spinBox_maxValue_valueChanged(int arg1) {maxValue = arg1; }void MainWindow::on_spinBox_maxResult_valueChanged(int arg1) {maxResult = arg1; }void MainWindow::on_spinBox_pages_valueChanged(int arg1) {pages = arg1; }

效果:

總結:

Qt 操作word 還是非常方便的,關鍵在于理解操作的機制,這樣才能靈活應用。

下載鏈接:
https://download.csdn.net/download/qq_21291397/12299262

總結

以上是生活随笔為你收集整理的Qt 操作words实例 --- 幼儿快算题生成器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 致命弯道8在线观看免费高清完整 | 免费人妻精品一区二区三区 | 成年人网站免费观看 | 国产精品理伦片 | 精品国产一区一区二区三亚瑟 | 国产成人无码精品亚洲 | www.99视频| 精品国产露脸精彩对白 | 伊人久久一区 | 中国一级大黄大黄大色毛片 | 日产精品一区 | 欧美乱妇狂野欧美视频 | 毛片网在线观看 | 亚洲偷怕 | 朋友人妻少妇精品系列 | 免费一级全黄少妇性色生活片 | 六月丁香久久 | 中文字幕在线第一页 | 久久精品黄色片 | 欧美色图亚洲激情 | 国产真实乱人偷精品 | 久久羞羞| 在线视频观看免费 | jizz在亚洲 | 美女在线观看视频 | 天堂一二三区 | 黑名单上的人全集免费观看 | 国产色视频一区二区三区qq号 | 亚洲AV成人无码精品久久盆瓶 | av在线不卡网站 | 国产影音先锋 | 自拍偷拍21p| 69性视频 | 亚洲综合日韩精品欧美综合区 | 欧美一二三 | 777欧美| 国产成人毛片 | 黄色视屏免费 | 一级片少妇 | 午夜精品久久 | 2023天天操 | 黄色一级片网站 | 日韩视频在线观看一区 | 性生活毛片 | xx视频在线观看 | 99精品一区二区三区 | 久久这里精品 | 日韩成人不卡 | 美女mm131爽爽爽免费动视频 | 亚洲二区视频 | 在线视频一区二区三区四区 | 丁香综合网 | 精品成人在线 | 亚洲无遮挡 | 娇妻玩4p被三个男人伺候电影 | 免费av大片 | 欧美99久久精品乱码影视 | 五月开心网| 国产一区二区免费视频 | 91香蕉国产在线观看 | 欧美日韩国产一区二区三区在线观看 | 中文无码精品一区二区三区 | 日韩一级视频 | 欧美一级淫片免费视频黄 | 国产尤物视频在线 | 伊人情人综合网 | a级黄色片免费看 | 天天色天天爱 | 久久久久久久久久影视 | 欧美xxxx视频 | 欧美com| 超碰在线中文字幕 | 午夜激情av在线 | 毛片久久久久 | 亚洲一区中文字幕永久在线 | 都市激情自拍 | a天堂资源在线观看 | 欧美日韩一区二区三区四区五区六区 | 欧美精品色哟哟 | 女女高潮h冰块play失禁百合 | 97超碰人人爱 | 国产肥老妇视频 | 精品少妇人妻av一区二区三区 | 激情综合小说 | 91小视频在线 | 国产又粗又深又猛又爽又在线观看 | 四虎精品久久 | 欧美爱爱一区二区 | 亚洲男人天堂2020 | 中出在线 | 国产成人综合在线视频 | 琪琪色av| 日韩欧美在线精品 | 国产美女白浆 | 国产精品久久AV无码 | 农村末发育av片一区二区 | 手机在线观看免费av | 国产精品视频a | 欧美激情一区二区视频 |