| 
 | 
 
shiyan.h 
 #include <QPushButton> 
 #include <QVBoxLayout> 
 #include <QWidget> 
 #include <QLineEdit> 
 #include <QtSql> 
class shiyan : public QWidget 
 { 
 Q_OBJECT 
QPushButton *charu; 
QPushButton *chaxun; 
QLineEdit *bianji; 
QSqlDatabase db; 
 
 public: 
     shiyan(QWidget *parent = 0); 
public slots: 
     void charuzhi(); 
void huoquzhi(); 
 }; 
shiyan.cpp 
#include <QString> 
#include <QSqlQuery> 
#include "shiyan.h" 
 
shiyan::shiyan(QWidget *parent):QWidget(parent) 
 { 
 
 
     charu = new QPushButton("charu"); 
chaxun = new QPushButton("chaxun"); 
bianji = new QLineEdit("abc"); 
 
     QVBoxLayout *layout = new QVBoxLayout; 
     layout->addWidget(bianji); 
     layout->addWidget(charu); 
     layout->addWidget(chaxun); 
     setLayout(layout); 
db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName("/home/zzh/123/zzh"); 
db.open(); 
connect(charu,SIGNAL(clicked()),this,SLOT(charuzhi())); 
connect(chaxun,SIGNAL(clicked()),this,SLOT(huoquzhi())); 
 
      
 
 
 } 
 
 
void shiyan::charuzhi() 
{ 
 
if(db.isOpen()){ 
QString zhi = bianji->text(); 
QSqlQuery query; 
query.prepare("insert into biao values(:id)"); 
query.bindValue(":id",zhi); 
query.exec(); 
} 
 
} 
void shiyan::huoquzhi() 
{ 
QSqlQuery query; 
query.exec("SELECT a FROM biao"); 
while (query.next()) { 
         QString name = query.value(0).toString(); 
         bianji->setText(name); 
          
     } 
 
 
} 
main.cpp 
 #include <QApplication> 
#include "shiyan.h" 
 int main(int argc, char *argv[]) 
 { 
     QApplication app(argc, argv); 
     shiyan widget; 
 
     widget.show(); 
     return app.exec(); 
 } 
前两天我编译程序,能编译,提示我找不到槽,后来槽搞定了,数据库又打不开了,后来数据库能打开了,但只能在命令行下执行,直接双击执行,数据库就工作不了了,我用当前路径./zzh和zzh都不行,换成绝对路径就正常了,就象上面写的那样。QT只能使用绝对路径来定位数据库吗? |   
 
 
 
 |