打印

QT的槽搞不定了,帮忙啊

QT的槽搞不定了,帮忙啊

#include <QApplication>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
#include <QLineEdit>
#include <QtSql>
#include <QString>

class shiyan : public QWidget
{
QPushButton *charu;
QPushButton *chaxun;
QLineEdit *bianji;
QSqlDatabase db;
QSqlQuery query;
public:
     shiyan(QWidget *parent = 0);
public slots:
     void charuzhi(void);
void huoquzhi(void);
};

shiyan::shiyan(QWidget *parent)
     : QWidget(parent)
{
     charu = new QPushButton("charu");
chaxun = new QPushButton("chaxun");
bianji = new QLineEdit();

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(bianji);
     layout->addWidget(charu);
     layout->addWidget(chaxun);
     setLayout(layout);

db = QSqlDatabase::addDatabase("QSQLITE");
     db.setDatabaseName("zzh");
          db.open();

connect(charu, SIGNAL(clicked()),bianji, SLOT(charuzhi()));
connect(chaxun, SIGNAL(clicked()),bianji, SLOT(huoquzhi()));
     


}


void shiyan::charuzhi(void)
{
QString zhi = bianji->text();
query.prepare("insert into biao values(?)");
query.addBindValue(zhi);
}
void shiyan::huoquzhi(void)
{
query.exec("SELECT a FROM biao");
while (query.next()) {
         QString name = query.value(0).toString();
         bianji->setText(name);
         
     }
}
int main(int argc, char *argv[])
{
     QApplication app(argc, argv);
     shiyan widget;

     widget.show();
     return app.exec();
}

输入信息后,一个槽将信息存在数据库里,另一个槽是在数据库里读取信息并显示。

TOP

有什么出错提示信息?

TOP

[code:1]
class shiyan : public QWidget
{
    Q_OBJECT
QPushButton *charu;
QPushButton *chaxun;
....
[/code:1]
注意在需要在自己类里边定义槽的时候,类必须在最前面加 Q_OBJECT
不然槽不起作用,估计楼主没有仔细看文档,在文档里边有说明的
努力C 为儿时的游戏梦~ 喜欢Linux里边人们无私奉献的那种精神~

TOP

程序的错误提示是:没有找到SLOT(charuzhi())和SLOT(huoquzhi()),所以我觉得是信号和槽有错误。好像连接不上

TOP

已搞定。

TOP

一直没多长时间搞qt````之前只看了点```
现在看到朋友这代码```真像java```除开某些地方。。。。

TOP