C++之Qt编程初级
来源:互联网 发布:农村淘宝服务点查询 编辑:程序博客网 时间:2024/05/16 19:45
好久没有时间更新博客了,主要学习了C++面向对象编程的思想运用到Qt编程中去,初级水平练练手,开发环境是Linux+Mysql+QtCreator
小作品可以理解为基于QT框架写的数据库连接,Qt开发等内容,让我们能够借助Qt的方便快捷迅速理解C++编程,由于本人长期接受Android Java的开发习惯,导致一开始很不适应,慢慢学习的过程中你会发现C++给人编程的感觉就是每一步都要很清楚,每一个指针变量都得清楚在哪分配怎么去运用,这些习惯在java的开发环境下是很难学习到的。
编程思想是相同的,让我们感受下C++带来的Qt之美,不得不说QT的确很方便。
主要逻辑代码主要是界面的绘制和standardItemModel与tabView的创建
ScriptDialog::ScriptDialog(QWidget *parent) : QDialog(parent){ isClickOk = false; label = new QLabel; label->setText(tr("Enter SQL")); textEdit = new QTextEdit; yesButton = new QPushButton; yesButton->setText(tr("OK")); noButton = new QPushButton; noButton->setText(tr("NO")); QGridLayout* gridLayout = new QGridLayout(this); gridLayout->addWidget(label,0,0); gridLayout->addWidget(textEdit,0,1); QHBoxLayout* boxLayout = new QHBoxLayout; boxLayout->addWidget(yesButton); boxLayout->addWidget(noButton); gridLayout->addLayout(boxLayout,1,1); connect(yesButton, SIGNAL(clicked()), this, SLOT(yesButtonOnclick())); connect(noButton, SIGNAL(clicked()), this, SLOT(noButtonOnclick()));}void ScriptDialog::yesButtonOnclick(){ isClickOk = true; sqlTxt = textEdit->toPlainText(); close();}void ScriptDialog::noButtonOnclick(){ close();}
数据库逻辑封装类
#include "ownmysql.h"#include <stdlib.h>#include <stdio.h>#include <QMessageBox>#include <string.h>OwnMysql::OwnMysql(){ mysql_init(&mysql); mySqlConnection = NULL; memset(bufMsg,0,sizeof(bufMsg));}int OwnMysql::sql_connect(const char* Hostname,const char* Username,const char* Passward,const char* DBName){ mySqlConnection = mysql_real_connect(&mysql,Hostname,Username,Passward,DBName,0,0,0); if(mySqlConnection == NULL){ memset(bufMsg,0,sizeof(bufMsg)); strcpy(bufMsg,mysql_error((&mysql))); return -1; }else{ return 0; }}void OwnMysql::sql_disconnect(){ if(mySqlConnection != NULL){ mysql_close(mySqlConnection); mySqlConnection = NULL; }}int OwnMysql::sql_exec(const char *Sql){ if(mysql_query(mySqlConnection,Sql) != 0){ memset(bufMsg,0,sizeof(bufMsg)); strcpy(bufMsg,mysql_error(&mysql)); return -1; } return 0;}int OwnMysql::sql_exec_open(const char *Sql, QStandardItemModel **model){ if(Sql != NULL && model != NULL){ if(mysql_query(mySqlConnection,Sql) != 0){ memset(bufMsg,0,sizeof(bufMsg)); strcpy(bufMsg,mysql_error(&mysql)); return -1; } MYSQL_RES* result = mysql_store_result(mySqlConnection); if(result == NULL){ memset(bufMsg,0,sizeof(bufMsg)); strcpy(bufMsg,mysql_error(&mysql)); return -1; } int rowcount = mysql_affected_rows(mySqlConnection); int fieldcount = mysql_field_count(mySqlConnection); *model = new QStandardItemModel(rowcount,fieldcount); MYSQL_FIELD* field; int i = 0; int j = 0; for(j = 0 ; j < fieldcount; j++){ field = mysql_fetch_field(result); (*model)->setHeaderData(j,Qt::Horizontal,field->name); } for(i = 0 ; i < rowcount;i++){ MYSQL_ROW row = mysql_fetch_row(result); for(j = 0;j < fieldcount;j++){ (*model)->setData((*model)->index(i, j, QModelIndex()),row[j]); } } mysql_free_result(result); return 0; } return -1;}const char* OwnMysql::getError(){ return bufMsg;}
到这基本简单开发就学完了,代码下载地址当做参考代码下载
http://download.csdn.net/download/szqsdq/9454168
1 0
- C++之Qt编程初级
- C语言初级编程
- C编程初级经验
- 初级c语言编程问题
- c编程规范-初级版
- linux网络编程之TCP编程----初级
- linux c编程 多线程(初级)
- linux c编程 多线程(初级)
- Qt初级-Qt格式
- RxJava响应式编程之初级了解
- RxJava响应式编程之初级了解
- RxJava响应式编程之初级了解
- Qt之数据库编程
- QT之UDP编程
- Qt之串口编程
- Qt之网络编程
- QT编程之Layout
- Qt之数据库编程
- demo
- 线性代数复习五——行列式
- 通用JSON数据生成器
- Linux下网络流量实时监控工具 大全
- poi解决内存消耗过大溢出问题
- C++之Qt编程初级
- springMVC前端请求找不到资源路径(HTTP Status 404)问题
- 242. Valid Anagram
- 12. 代理模式
- 基于CentOS7开发之路 --- 第二章 : CentOS 7 配置Java环境变量
- POJ 1127_Jack Straws
- Windows开启网络对时方法
- C#操作Access通用类实例
- 正则表达式基础(1)