资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实 验 报 告 课程名称 软件案例分析 实验名称 基于对话框的录入界面 班 级 学 号 姓 名 成 绩 指导教师 实验日期 1. 实验目的(1) 了解Qt数据库访问技术(加载数据库驱动)。(2) 掌握QSqlDatabase类和QSqlQuery类的使用。(3) 了解熟悉Qt Creator开发环境及相关控件的使用。(4) 了解信号和槽的关联及作用。(5) 掌握基于对话框的用户界面设计方法和数据操作方法。(6) 掌握主窗口和子窗口之间数据访问方法。2. 实验环境Qt Creator + MinGW 4.9 (32-bit),Windows7,4G内存,DELL笔记本一台。3. 实验要求(1) 实现对人事(或其他)基本信息的增加、编辑、删除、刷新和导出功能。(2) 参考运行界面如图所示。(3) 运行界面友好简洁。 主界面 “增加个人基本信息”对话框“修改个人基本信息”对话框4. 实验步骤及代码(1)启动Qt Creator,创建基于部件框的Qt Widgets Application类型的应用程序,命名为Widget。(2)修改对话框标题为“人事基本信息管理”。在主界面窗口中添加6个按钮控件,一个Table Widget控件,界面设计如图所示。(3) 在主界面设置6个PushButton控件,设置text文本为“刷新”,“导出”,“增加”,“编辑”,“删除”,“退出”,编辑Table Widget的条目,分别为“序号”,“姓名”,“性别”,“出生日期”,“电话”,“最后学位”,“毕业学校”,“毕业时间”,“备注”。(4) 向工程中添加Qt设计师界面类(模板为Widget)子对话框资源,命名为“Add”,向界面添加Label,Line Edit,Date Edit,Conbo Box等控件若干,界面设计如图。(5) 在Widget.h添加如下代码:/声明信号signals: void sendStr(QString ,QString,QString,QString,QString,QString,QString,QString,QString,int);/声明槽private slots: void on_pushButton_clicked(); void on_tableWidget_cellDoubleClicked(int row, int column); void on_pushButton_4_clicked(); void on_tableWidget_cellClicked(int row, int column); void on_pushButton_3_clicked(); void on_pushButton_5_clicked(); void on_pushButton_2_clicked();private: Ui:Widget *ui; int r; Add *add;/增加界面对象 QSqlDatabase db;public: void createConnection();/创建连接 void init(); void setCW(); void Table2Excel(QTableWidget *table,QString title);/导出函数protected: void contextMenuEvent(QContextMenuEvent *);/增加右击菜单(6) 创建连接连接数据库,其函数代码如下:void Widget:createConnection() db=QSqlDatabase:addDatabase(QMYSQL); db.setHostName(localhost); db.setPort(3306); db.setDatabaseName(qt); db.setUserName(root); db.setPassword(121819); if(!db.open() QMessageBox:warning(this,警告,数据库连接失败!); exit(0); return; (7) 初始化函数代码如下(主要为查询数据库代码):void Widget:init() QSqlQuery query(select *from renshi); while(query.next() QStringList list; listquery.value(0).toString()query.value(1).toString()query.value(2).toString() query.value(3).toString()query.value(4).toString()query.value(5).toString() query.value(6).toString()query.value(7).toString()tableWidget-rowCount(); ui-tableWidget-insertRow(rownum); ui-tableWidget-setItem(rownum, 0, new QTableWidgetItem(list.at(0); ui-tableWidget-setItem(rownum, 1, new QTableWidgetItem(list.at(1); ui-tableWidget-setItem(rownum, 2, new QTableWidgetItem(list.at(2); ui-tableWidget-setItem(rownum, 3, new QTableWidgetItem(list.at(3); ui-tableWidget-setItem(rownum, 4, new QTableWidgetItem(list.at(4); ui-tableWidget-setItem(rownum, 5, new QTableWidgetItem(list.at(5); ui-tableWidget-setItem(rownum, 6, new QTableWidgetItem(list.at(6); ui-tableWidget-setItem(rownum, 7, new QTableWidgetItem(list.at(7); ui-tableWidget-setItem(rownum, 8, new QTableWidgetItem(list.at(8); (8) 在构造函数中添加如下代码:ui-setupUi(this); add=new Add; connect(this,SIGNAL(sendStr(QString,QString,QString,QString,QString,QString,QString,QString,QString,int), add,SLOT(recvStr(QString,QString,QString,QString,QString,QString,QString,QString,QString,int); connect(add,SIGNAL(senMsg(),this,SLOT(on_pushButton_clicked();setCW();/去掉默认行号QHeaderView* headerView = ui-tableWidget-verticalHeader();headerView-setHidden(true);createConnection();init();r=-1;(9) 导出函数,代码如下:void Widget:Table2Excel(QTableWidget *table, QString title) QString fileName = QFileDialog:getSaveFileName(table, 保存, QStandardPaths:writableLocation(QStandardPaths:DocumentsLocation), Excel 文件(*.xls *.xlsx); if (fileName!=) QAxObject *excel = new QAxObject; if (excel-setControl(Excel.Application) /连接Excel控件 excel-dynamicCall(SetVisible (bool Visible),false);/不显示窗体 excel-setProperty(DisplayAlerts, false);/不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示 QAxObject *workbooks = excel-querySubObject(WorkBooks);/获取工作簿集合 workbooks-dynamicCall(Add);/新建一个工作簿 QAxObject *workbook = excel-querySubObject(ActiveWorkBook);/获取当前工作簿 QAxObject *worksheet = workbook-querySubObject(Worksheets(int), 1); int i,j,colcount=table-columnCount(); QAxObject *cell,*col;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号