问题遇到的现象和发生背景
目的是用户选择一个选项之后弹出一个窗口用户输入内容后调用选择选项的相应类的函数进行操作。
现在想到的是使用模板,出现了问题。
问题相关代码,请勿粘贴截图
#pragma once
#include <QWidget>
#include "ui_DeleteInform.h"
template<typename T>
class DeleteInform : public QWidget
{
Q_OBJECT
public:
DeleteInform(QWidget* parent = Q_NULLPTR);
private slots:
void deleteslot();
private:
Ui::DeleteInform ui;
};
#include "DeleteInform.h"
#include"System.h"
#include <QtWidgets/qmessagebox.h>
template<typename T>
DeleteInform<T>::DeleteInform(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
QObject::connect(ui.OK, SIGNAL(clicked()), this, SLOT(deleteslot()));
}
template<typename T>
void DeleteInform<T>::deleteslot() {
std::string temp = ui.NumEdit->text().toStdString();
if (T::DeleteOne(temp)) {
QMessageBox::information(this, _Q("提示框"), _Q("删除成功!"), QMessageBox::Ok);
}
else {
QMessageBox* pmessage2 = new QMessageBox(QMessageBox::Warning, _Q("提示框"), _Q("编号不存在,删除失败!"), QMessageBox::Ok);
pmessage2->exec();
}
}
运行结果及报错内容
我的解答思路和尝试过的方法
已查看所有文件都存在项目文件夹下,不存在名称错误,与QT插件更新无关。
已单独编译每一个文件,发现只有使用了模板的这个出错。
我想要达到的结果
1.出现此问题的原因?
2.我该如何修改使用模板?或者其他方法?
帮帮忙,非常感谢!