Qt使用中遇到的问题及解决方案
来源:互联网 发布:极限挑战嘉宾知乎 编辑:程序博客网 时间:2024/04/29 23:24
1. 解决QSqlDatabasePrivate::removeDatabase: connection ‘myConnection’ is still in use, all queries will cease to work的问题
该问题主要是因为没有关闭之前的数据库连接,然后又需要创建新的数据库连接导致。解决方案:必须释放该连接的所有查询,即删除所有与该连接有关的query;同时在释放该连接时,需要先获取该连接的连接名,然后先关闭当前数据库,并将当前数据库使用默认构造函数覆盖,最后再移除当前连接。
解决代码: void database::close()
{
QString connection;
connection = m_db.connectionName();
m_db.close();
m_db = QSqlDatabase();
m_db.removeDatabase(connection);
}
参考链接:http://stackoverflow.com/questions/9519736/warning-remove-database
http://stackoverflow.com/questions/8461333/sql-connection-still-open-even-after-deleting-it
2.解决Attempting to add QLayout “” to QDialog “”, which already has a layout的问题
该问题主要是由于将QDialog对象同时加入到了多个布局中间导致的,解决方案是在创建子布局时不要设置默认部件。即在创建布局时采用默认构造函数,不要设置部件。
解决代码:
QDialog* dlg = new QDialog(this); //输入框 serverLineEdit = new QLineEdit(dlg); //文本提示标签 QLabel* serverLabel = new QLabel(dlg); //按钮 QPushButton *okBtn = new QPushButton(dlg); QPushButton *cancelBtn = new QPushButton(dlg); okBtn->setText(QString("确定")); cancelBtn->setText(QString("取消")); serverLabel->setText(QString("server:")); //server栏布局 QHBoxLayout* ServerHLayout = new QHBoxLayout;//不要设置参数!!! serverLabel->setFixedWidth(80); serverLineEdit->setFixedWidth(200); serverLineEdit->setText("127.0.0.1"); ServerHLayout->addWidget(serverLabel); ServerHLayout->addWidget(serverLineEdit); QHBoxLayout* btnHLayoutBtn = new QHBoxLayout;//不要设置参数!!! btnHLayoutBtn->insertWidget(1,okBtn,0,Qt::AlignHCenter); btnHLayoutBtn->insertWidget(2,cancelBtn,0,Qt::AlignHCenter); QVBoxLayout *VLayout = new QVBoxLayout;//不要设置参数!!! VLayout->addLayout(ServerHLayout); VLayout->addLayout(btnHLayoutBtn); VLayout->setSpacing(20); QGridLayout* globLayout = new QGridLayout(dlg);//此处可以设置参数,顶级窗口 globLayout->addLayout(VLayout,2,10); dlg->setLayout(globLayout); connect(okBtn,SIGNAL(clicked()),this,SLOT(getDBLoginInfo())); connect(okBtn,SIGNAL(clicked()),dlg,SLOT(close())); connect(cancelBtn,SIGNAL(clicked()),dlg,SLOT(close())); dlg->setModal(true); //阻塞父窗口 dlg->show();`
3. Qt判断SQL server中某张表是否存在的方法
解决代码:
selectSql ="select * from sys.tables where name='"+tableName+"'"; query->exec(selectSql); if(query->next()) cout<<"the table is exsist!"<<endl; else cout<<"Not exsist!"<<endl
4.Qt判断SQLite中某张表是否存在的方法
解决代码:
selectSql = QString("select count(*) from sqlite_master where type='table' and name='%1'").arg(tableName);flag = query->exec(selectSql);
0 0
- Qt使用中遇到的问题及解决方案
- Maven使用过程中遇到的问题及解决方案
- 项目中遇到的 问题及解决方案
- 使用计算机遇到的问题及解决方案
- 搭建QT环境时遇到的问题及解决方案
- 使用Qt过程中遇到的问题
- Qt使用中遇到的问题
- Qt使用过程中遇到的问题
- 使用easyui过程中遇到的问题及解决方案积累中...
- ADS1.2环境使用过程中遇到的问题及解决方案
- 总结开始使用百度地图Android SDK中遇到的问题及解决方案(持续更新)
- Android Studio使用过程中遇到的一些问题及解决方案
- Android Studio使用过程中遇到的一些问题及解决方案
- Android Studio使用过程中遇到的一些问题及解决方案
- struts学习中遇到的小问题及解决方案
- 执行vbs脚本中遇到的问题及解决方案
- 装Windows 8 过程中遇到的问题,及解决方案
- snort安装过程中遇到的问题及解决方案
- baidu 检索 指定 网站
- 【C语言 每日一题】SOJ 1002 Anti-prime Sequences
- 指针与const限定符
- 《简明Python教程》学习(二)
- UVA 11624 Fire
- Qt使用中遇到的问题及解决方案
- php微信开发者模式token老是验证失败thinkphp
- hive 的四种排序
- 数据结构教程(P40~45)
- Hadoop之倒排索引
- 解决Gson解析Date数据格式的问题
- 【C】质数判断传统方法与高效率算法时间比对
- NOIP2016 信息传递
- 常见对象_判断一个字符串是否对称案例