基于Qt的对话框录入界面-毕业论文.doc
《基于Qt的对话框录入界面-毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Qt的对话框录入界面-毕业论文.doc(17页珍藏版)》请在咨信网上搜索。
1、 实 验 报 告 课程名称 软件案例分析 实验名称 基于对话框的录入界面 班 级 学 号 姓 名 成 绩 指导教师 实验日期 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、 实现对人事(或其他)基本信息的增加、编辑、删除、刷新和导出功能。(2) 参考运行界面如图所示。(3) 运行界面友好简洁。 主界面 “增加个人基本信息”对话框“修改个人基本信息”对话框4. 实验步骤及代码(1)启动Qt Creator,创建基于部件框的Qt Widgets Application类型的应用程序,命名为Widget。(2)修改对话框标题为“人事基本信息管理”。在主界面窗口中添加6个按钮控件,一个Table Widget控件,界面设计如图所示。(3) 在主界面设置6个PushButton控件,设置text文本为“刷新”,“导出”,“增加”,“编辑”,“删除”,“退出”,编辑Tabl
3、e 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);/声明槽priva
4、te 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
5、*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:add
6、Database(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.ne
7、xt() 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-tableWidge
8、t-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 QTableW
9、idgetItem(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) 在构造函数中
10、添加如下代码: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()
11、;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(QSta
12、ndardPaths: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那么在关闭是会出现类似“文件已修改,是否保存”的提示 Q
13、AxObject *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; /标题行
14、cell=worksheet-querySubObject(Cells(int,int), 1, 1); cell-dynamicCall(SetValue(const QString&), title); cell-querySubObject(Font)-setProperty(Size, 18); /调整行高 worksheet-querySubObject(Range(const QString&), 1:1)-setProperty(RowHeight, 30); /合并标题行 QString cellTitle; cellTitle.append(A1:); cellTitle.a
15、ppend(QChar(colcount - 1 + A); cellTitle.append(QString:number(1); QAxObject *range = worksheet-querySubObject(Range(const QString&), cellTitle); range-setProperty(WrapText, true); range-setProperty(MergeCells, true); range-setProperty(HorizontalAlignment, -4108);/xlCenter range-setProperty(Vertical
16、Alignment, -4108);/xlCenter /列标题 for(i=0;iquerySubObject(Columns(const QString&), columnName); col-setProperty(ColumnWidth, table-columnWidth(i)/6); cell=worksheet-querySubObject(Cells(int,int), 2, i+1); columnName=table-horizontalHeaderItem(i)-text(); cell-dynamicCall(SetValue(const QString&), colu
17、mnName); cell-querySubObject(Font)-setProperty(Bold, true); cell-querySubObject(Interior)-setProperty(Color,QColor(191, 191, 191); cell-setProperty(HorizontalAlignment, -4108);/xlCenter cell-setProperty(VerticalAlignment, -4108);/xlCenter /数据区 for(i=0;irowCount();i+) for (j=0;jquerySubObject(Cells(i
18、nt,int), i+3, j+1)-dynamicCall(SetValue(const QString&), table-item(i,j)?table-item(i,j)-text():); /画框线 QString lrange; lrange.append(A2:); lrange.append(colcount - 1 + A); lrange.append(QString:number(table-rowCount() + 2); range = worksheet-querySubObject(Range(const QString&), lrange); range-quer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Qt 对话框 录入 界面 毕业论文
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。