我知道Qt的基础知识。我唯一需要的是按钮和桌子。当用户按下按钮时,我在表中填入来自数据库的数据。我已经找到了数据库部分,主要是。
现在我的主要问题是Qt信号和插槽。在Java中,我们通过事件和处理程序来完成。如何将我的按钮连接到表的更新。或者如果它更好,我可以在程序运行时更新表。
任何可以找到正确方向的示例代码或参考将不胜感激!
答案 0 :(得分:2)
这非常简单。您可以使用Qt signal slot mechanism。您需要将the button's clicked signal连接到数据库的更新处理程序槽。
#include <QObject>
#include <QPushButton>
...
class UpdateHandler : public QObject
{
Q_OBJECT
public:
explicit UpdateHandler(QObject *parent) : QObject(parent)
{
connect(&m_pushButton, SIGNAL(clicked(bool)), SLOT(updateDatabase()));
}
public slots:
void updateDatabase()
{
// update the database here.
}
private:
QPushButton m_pushButton;
};
在C ++ 11的支持下,这可以更简单,因为你可以使用lambda。
UpdateHandler::UpdateHandler(QObject *parent) : QObject(parent)
{
connect(&m_pushButton , &QPushButton::clicked, [&] {
// update the database here
}};
}
免责声明:这只是原型类型的代码,所以这甚至都没有经过编译测试,但我认为它应该让你走了。
以下是如何使用QtCreator创建信号和插槽的一个很好的示例:
Creating a Qt Widget Based Application
如果你仍然使用它,你可以在这里找到所有的Qt 4.8文档:
Qt Designer's Signals and Slots Editing Mode