QT中模式qt等级怎么看是怎么回事~?

Qt中MySQL数据库编程
主要是下面的几个类
&QSqlDatabase 建立于数据库的链接&QSqlQuery
用于执行SQL语句
&QSqlTableModel 结合QTableView可以输出数据库的表
贴下我写的简单Demo
QSqlDatabase&db&=QSqlDatabase::addDatabase("QMYSQL");&//&becomes&the&new&default&connection
&&&&db.setUserName("root");//用户名
&&&&db.setPassword("password");//密码
&&&&db.setHostName("localhost");&&
&&&&db.setDatabaseName("test");//数据库名
&&&&db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");//使用SSL
&&&&db.setPort(3306);//端口
&&&&if(db.open()){&&
&&&&&&&&qDebug()&&"open/n"&&db.lastError().driverText()&&"/n";&&
&&&&else{&&
&&&&&&&&qDebug()&&"open&faile/n";&&
&&&&QSqlQuery&//用于执行SQL语言
&&&&&query.exec("show&databases");//很方便的
&&&&&while&(query.next())&{&&
&&&&&&&&&qDebug()&&query.value(0).toString()&&"/n";&&
&&&&QSqlTableModel&*model&=&new&QSqlTableM//间接将数据库表装入QTableView
&&&&model-&setTable("people");&&&//表名
&&&&model-&setEditStrategy(QSqlTableModel::OnManualSubmit);&&
&&&&model-&select();&&
&&&&//model-&removeColumn(0);&//&don't&show&the&ID
&&&&//model-&setHeaderData(0,&Qt::Horizontal,&QObject::tr("ID"));
&&&&model-&setHeaderData(0,&Qt::Horizontal,&tr("Name"));&&
&&&&model-&setHeaderData(1,&Qt::Horizontal,&tr("Age"));&&
&&&&model-&setHeaderData(2,&Qt::Horizontal,&tr("Sex"));&&
&&&&QTableView&*view&=&new&QTableView(this);&&
&&&&view-&setModel(model);&&
&&&&db.close();&&
&&&&QGridLayout&*&gl=new&QGridLayout();&&
&&&&gl-&addWidget(view);&&
&&&&this-&setLayout(gl);&&
下面是最终的现实效果如下:
现在先做一个显示的界面,界面是由一个表格试图和三个按钮组成。我的大概流程是:
&1&在对话框窗口先创建一个栅格布局管理器,添加一个表格视图窗口部件。
&2&创建一个水平布局管理器,在水平布局管理器中添加三个按钮,最后将水平布局管理器添加到栅格布局管理器中。
&3&创建三个按钮的信号与槽
&4&数据库的使用分为三步:(1)QsqlDatabase建立数据库的链接(2)QsqlQuery用于执行SQL语句(3)QsqlTableModel结合QtableView可以输出数据库的表。
&5&效果测试点击connect按钮链接打开数据库
"table.h"&&&&&&&&&&&&&&&&&&
int main(int argc,char
QApplication app(argc,argv);
Table *table = new T
table-&show();
return app.exec();
#ifndef TABLE_H
#define TABLE_H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
class QGridL
class QPushB
class QHBoxL
class Table:public
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//继承公共对话框窗体派生类
Table(QWidget *parent = 0);
//创建各个类的指针
QTableView *
QGridLayout *gridL
QPushButton *connectB
QPushButton *executionB
QPushButton *displayB
QHBoxLayout *verticalL
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
private slots:
//创建三个按钮槽函数
void on_connectButton_clicked();
void on_executionButton_clicked();
void on_displayButton_clicked();
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#include "table.h"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Table::Table(QWidget
:QDialog(parent)
//创建视图及按钮的对象
table = new QTableV
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
connectButton = new QPushButton("connect");
executionButton = new QPushButton("execution");
displayButton = new QPushButton("display");
//建立三个信号与槽函数链接
connect(connectButton,SIGNAL(clicked()),this,SLOT(on_connectButton_clicked()));
connect(executionButton,SIGNAL(clicked()),this,SLOT(on_executionButton_clicked()));
connect(displayButton,SIGNAL(clicked()),this,SLOT(on_displayButton_clicked()));
//创建一个水平布局管理器,布局三个按钮
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
verticalLayout = new QHBoxL
verticalLayout-&addWidget(connectButton);
&&&verticalLayout-&addWidget(executionButton);
verticalLayout-&addWidget(displayButton);
//创建一个栅格布局管理器对整体窗口部件的排布。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
gridLayout = new QGridL
gridLayout-&addWidget(table,0,0,1,1);
gridLayout-&addLayout(verticalLayout,1,0,1,1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
setLayout(gridLayout);
//设置窗口的大小
resize(500,400);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Table::on_connectButton_clicked()
//链接函数实现数据库的链接功能
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
//添加QMYSQL数据库驱动
db.setHostName("localhost"); //设置登陆的主机名为localhost
db.setUserName("root"); //登陆的用户是超级用户
db.setPassword("123456"); //登陆密码是123456
db.setDatabaseName("student"); //打开的数据库表格,这个表格式预先创建好的。用&create database
bool ok = db.open();
//布尔类型,打开数据。
if(ok) //if判断
&&&&&&&&&&&&&&&
qDebug()&&"open Database!"&&
//如果打开数据库在终端输出open Database信息
&&&&&&&&&&&&&&&
QMessageBox::critical(0,QObject::tr("Database
Error"),db.lastError().text());
//否则输出数据库的消息框错误信息
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Table::on_executionButton_clicked()
//按executionButton按钮执行SQL语句
//创建一个执行数据库SQL语句对象
query.exec("drop table employee");
//如果存在employee数据库表格,先删除
query.exec("create table employee(id int(11) primary key,name
varchar(50),description varchar(255))");
//在创建数据库表格employee
query.exec("insert into employee
values(1,'zhangsan','student')");
query.exec("insert into employee
values(2,'lisi','teacher')");
query.exec("insert into employee
values(3,'wangwu','professor')");
&//插入三个记录
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Table::on_displayButton_clicked()
//用数据库表格模式结合试图显示数据库内容。
QSqlTableModel *model = new QSqlTableM
//创建数据表模式对象
model-&setTable("employee");
//设置数据库表上的运作模式以employee表名,不选择从数据表格以外获取信息
model-&setEditStrategy(QSqlTableModel::OnManualSubmit);
//所有更改将被缓存在模型中,直到submitAll()或revertAll()函数被调用
model-&select();
//select()函数用于确定一个或多个套接口的状态。对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息。
model-&setHeaderData(0,Qt::Horizontal,QObject::tr("ID"));
model-&setHeaderData(1,Qt::Horizontal,QObject::tr("name"));
model-&setHeaderData(2,Qt::Horizontal,QObject::tr("description"));
//对应指定的字段并设置对应的水平标题显示
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
table-&setModel(model);
//将这个数据库表格模式用视图显示出来。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
在关闭对话框后出现查询应用默认数据库连接错误:
QSqlDatabasePrivate::removeDatabase:
connection 'qt_sql_default_connection' is still in use, all queries
will cease to work.
我googel以下,参照
的内容测试,还是解决不了。
在第二个按钮末尾添加下面的语句:
name = QSqlDatabase::database().connectionName();
QSqlDatabase::removeDatabase(name);
On_executionButton_clicked()函数末尾添加,执行SQL语句后关闭窗口时有效的,但在on_displayButton_clicked()函数末尾添加却没有效。问题还在解决当中。。。。。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。C++ Qt设计模式_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&C++ Qt设计模式本词条缺少概述,补充相关内容使词条更完整,还能快速升级,赶紧来吧!出版社电子工业出版社原作名An Introduction to Design Patterns in C++ with Qt页&&&&数492定&&&&价78.00元ISBN1 《C++ Qt设计模式(第2版)》是美国已使用十余年的经典教程,利用跨平台开源软件开发框架Qt阐释了C++和设计模式中的主要思想。全书共分四个部分:第一部分介绍C++、UML、Qt、模型-视图、SQL、XML、设计模式等基础知识,目的是为零基础的C++初学者铺垫一条学习面向对象编程的快捷之路;第二部分讲解内存访问、继承等重要的C++特性,是前一部分的延伸和拓展;第三部分使用Phonon编写了一个多媒体播放器,展示了主要技术理念的应用方法;附录部分给出了C++保留关键字、Debian和Qt程序开发环境的配置等内容。每节的练习题和各章后面的复习题,既可作为课堂上的讨论题,也可进一步启发读者对于关键知识点的思考。
新手上路我有疑问投诉建议参考资料 查看为什么在QT Creator这个软件中编辑QT程序时有时无法输入??_百度知道
为什么在QT Creator这个软件中编辑QT程序时有时无法输入??
有时用QT Ctreator打开一个工程后!关了后在启动就有用了,真是气死我了!这种情况经常发生,就是无论按那个键都没反应我用的是WIndows下的QT Creator,无法在文件里面编辑,按BakcSpace也没用!
我最后在编辑菜单中的高级选项中把那个使用VIM风格去掉就ok了!这个VIM是什么呀?真是害苦了我
提问者采纳
不小心连续按两下 alt-v。在vim模式下。vim是linux下的一个文本编辑器,就会进入vim模式。按esc退出插入模式,才能插入你输入的字符,要先按i键进入插入模式, alt-v 的时候
提问者评价
恩@!!谢谢哈!对于VIM 这个软件,,我跟她不是很熟,,呵呵.....谢谢各位!!
其他类似问题
按默认排序
其他1条回答
用的哪个版本的 qt creator ? qt creator 常见的问题是第一次启动很花费时间,至于你说的问题。可能是由于在刚打开工程时qt creator会对工程所有的代码进行浏览和分析。在这个过程中,你进行操作,qt creator貌似是无响应的。建议将qt creator更新到最新版本,我还没发现
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁QQT如何刷模式等级_百度知道
QQT如何刷模式等级
谁教下我 我愿意用QQT后台刷分挂来交换
提问者采纳
双开刷包子06 一开始就用高科技快速拿包子 这样的缺点是没有经验 但是有战绩 QT许多小号战绩好几千 但是经验却只有一点 包子等级却很高 就是这么刷出来的
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 qt等级怎么看 的文章

 

随机推荐