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();
}
输入信息后,一个槽将信息存在数据库里,另一个槽是在数据库里读取信息并显示。 有什么出错提示信息?
class shiyan : public QWidget
{
Q_OBJECT
QPushButton *charu;
QPushButton *chaxun;
....
注意在需要在自己类里边定义槽的时候,类必须在最前面加 Q_OBJECT
不然槽不起作用,估计楼主没有仔细看文档,在文档里边有说明的 程序的错误提示是:没有找到SLOT(charuzhi())和SLOT(huoquzhi()),所以我觉得是信号和槽有错误。好像连接不上 已搞定。 一直没多长时间搞qt````之前只看了点```
现在看到朋友这代码```真像java```除开某些地方。。。。
页:
[1]