我有一个类型为QDialog
的简单对话框。当用户单击“确定”按钮时,我想在关闭表单并返回到调用方(主表单)之前进行一些验证。
我尝试在“ CustomDialog.cpp”文件中添加以下代码:
void CustomDialog::accept(){
// My code...
}
但是我得到这个错误:
错误:虚拟函数'accept'具有不同的调用约定 属性('void()')比其覆盖的功能(具有 调用约定'void() attribute (((thiscall))')
我在做什么错?我也需要在CustomDialog.hpp中添加一些内容吗?
答案 0 :(得分:0)
在您的<script>
export default {
data() {
return {
list: [],
task: {
id: '',
body: ''
}
};
},
created() {
this.fetchTaskList();
},
methods: {
fetchTaskList() {
axios.get('api/tasks').then((res) => {
this.list = res.data;
});
},
createTask() {
axios.post('api/tasks', this.task)
.then((res) => {
this.task.body = '';
this.edit = false;
this.fetchTaskList();
})
.catch((err) => console.error(err));
},
deleteTask(id) {
axios.delete('api/tasks/' + id)
.then((res) => {
this.fetchTaskList()
})
.catch((err) => console.error(err));
},
updateTask() {
axios.patch('api/tasks/' + this.task)
.then((res) => {
this.task.body = '';
this.edit = false;
this.fetchTaskList()
})
.catch((err) => console.error(err));
},
}
}
</script>
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Task;
class TaskController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return Task::latest()->get();
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'body' => 'required|max:500'
]);
return Task::create(['body' => request('body')]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate($request, [
'body' => 'required|max:500'
]);
return Task::update(['body' => request('body')]);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$task = Task::findOrFail($id);
$task->delete();
return 204;
}
}
中,您应该在.hpp
类内声明accept()
方法。即CustomDialog
下的void accept() override;
。